/
marie.sidorkina
/
eye_tracking_java
Обзор
Документация
Войти
/
marie.sidorkina
/
eye_tracking_java
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/com/example/mydemo1/PredictionServiceTest.java
119 строк
4 KB
Marie
add tests
14 янв 2026, 11:17
14 янв 2026, 11:17
c2fa01e
Код
Авторство
О чём код?
package com.example.mydemo1; import com.example.mydemo1.model.*; import com.example.mydemo1.repository.GazeRepository; import com.example.mydemo1.repository.ChunkRepository; import com.example.mydemo1.repository.SessionRepository; import com.example.mydemo1.repository.UserRepository; import com.example.mydemo1.service.PredictionService; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.time.Instant; import java.util.List; import java.util.UUID; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @SpringBootTest class PredictionServiceTest { @Autowired private PredictionService predictionService; @Autowired private ChunkRepository chunkRepository; @Autowired private GazeRepository gazeRepository; @Autowired private SessionRepository sessionRepository; @Autowired private UserRepository userRepository; @Test void shouldCreatePredictionForChunk() { User user = userRepository.save(createUser()); Session session = sessionRepository.save(createSession(user)); Chunk savedChunk = chunkRepository.save(createChunk(session, "p1", "p1")); List<Gaze> gazes = List.of( gaze(session, savedChunk, 0, 100, 200), gaze(session, savedChunk, 50, 110, 200), gaze(session, savedChunk, 100, 120, 200) ); List<Gaze> savedGazes = gazeRepository.saveAll(gazes); savedChunk.getGazes().addAll(savedGazes); Prediction p = predictionService.classifyChunk(savedChunk); assertNotNull(p.getId(), "Prediction must have id"); assertEquals(savedChunk.getId(), p.getChunk().getId(), "Chunk id should be the same for prediction and chunk"); assertNotNull(p.getStatus(), "Prediction must have status"); } @Test void shouldNotCreateDuplicatePrediction() { User user = userRepository.save(createUser()); Session session = sessionRepository.save(createSession(user)); Chunk savedChunk = chunkRepository.save(createChunk(session, "p1", "p1")); List<Gaze> gazes = List.of( gaze(session, savedChunk, 0, 100, 200), gaze(session, savedChunk, 50, 110, 200) ); List<Gaze> savedGazes = gazeRepository.saveAll(gazes); savedChunk.getGazes().addAll(savedGazes); Prediction p1 = predictionService.classifyChunk(savedChunk); Prediction p2 = predictionService.classifyChunk(savedChunk); assertEquals(p1.getId(), p2.getId(), "Predictions for the same chunk must have the same id"); } @Contract("_, _, _, _, _ -> new") private @NotNull Gaze gaze(Session session, Chunk chunk, long offsetMs, double x, double y) { return Gaze.createWithChunk( session, chunk, Instant.ofEpochMilli(1_000_000 + offsetMs), x, y ); } private @NotNull Chunk createChunk(Session session, String elementFrom, String elementTo) { Chunk c = new Chunk(); c.setSession(session); c.setTimestamp(Instant.now()); c.setElementFrom(elementFrom); c.setElementTo(elementTo); return c; } private @NotNull User createUser() { User u = new User(); u.setUsername("test"); u.setEmail("test" + UUID.randomUUID() + "@mail.com"); u.setPassword("123"); return u; } private @NotNull Session createSession(User user) { Session s = new Session(); s.setName("Test session"); s.setStartedAt(Instant.now()); s.setUser(user); return s; } }