/
marie.sidorkina
/
eye_tracking_java
Обзор
Документация
Войти
/
marie.sidorkina
/
eye_tracking_java
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/com/example/mydemo1/SessionServiceTest.java
96 строк
4 KB
Marie
add tests
14 янв 2026, 11:17
14 янв 2026, 11:17
c2fa01e
Код
Авторство
О чём код?
package com.example.mydemo1; import com.example.mydemo1.dto.SessionCreateRequest; import com.example.mydemo1.dto.SessionDetailsDto; import com.example.mydemo1.dto.SessionDto; import com.example.mydemo1.dto.SessionEndRequest; import com.example.mydemo1.dto.ChunkCreateRequest; import com.example.mydemo1.dto.GazeCreateRequest; import com.example.mydemo1.model.*; import com.example.mydemo1.repository.UserRepository; import com.example.mydemo1.service.ChunkService; import com.example.mydemo1.service.SessionService; 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 static org.junit.jupiter.api.Assertions.*; @SpringBootTest class SessionServiceTest { @Autowired private SessionService sessionService; @Autowired private ChunkService chunkService; @Autowired private UserRepository userRepository; @Test void createAndEndSession_and_getDetails_containsChunksAndGazes() { User user = new User(); user.setUsername("bob"); user.setEmail("bob@example.com"); user.setPassword("pwd"); user = userRepository.save(user); SessionCreateRequest cr = new SessionCreateRequest(); cr.setUserId(user.getId()); cr.setName("reading session"); cr.setStartedAt(Instant.now()); SessionDto sessionDto = sessionService.createSession(cr); assertNotNull(sessionDto, "Session dto should not be null"); assertNotNull(sessionDto.getId(), "Session id should not be null"); assertEquals("reading session", sessionDto.getName(), "Session name should be reading session"); Long sessionId = sessionDto.getId(); ChunkCreateRequest chunkReq = new ChunkCreateRequest(); chunkReq.setSessionId(sessionId); chunkReq.setTimestamp(Instant.now()); chunkReq.setElementFrom("p.a"); chunkReq.setElementTo("p.a"); GazeCreateRequest g1 = new GazeCreateRequest(); g1.setTimestamp(Instant.now()); g1.setX(100.0); g1.setY(200.0); GazeCreateRequest g2 = new GazeCreateRequest(); g2.setTimestamp(Instant.now().plusMillis(40)); g2.setX(108.0); g2.setY(201.0); chunkReq.setGazes(List.of(g1, g2)); Session session = sessionService.findSessionById(sessionId) .orElseThrow(() -> new IllegalStateException("Session not found: " + sessionId)); chunkService.createChunk(session, chunkReq); SessionEndRequest endReq = new SessionEndRequest(); endReq.setEndedAt(Instant.now().plusSeconds(10)); SessionDto ended = sessionService.endSession(sessionId, endReq); assertNotNull(ended.getEndedAt(), "Session ended at should not be null"); SessionDetailsDto details = sessionService.getSessionDetails(sessionId); assertNotNull(details, "Session details should not be null"); assertEquals(sessionId, details.getId(), "Session id should be the same for session and details"); assertNotNull(details.getChunks(), "Details chunks should not be null"); assertFalse(details.getChunks().isEmpty(), "Details chunks should not be empty"); boolean hasChunkWithGaze = details.getChunks().stream() .anyMatch(c -> c.getGazes() != null && !c.getGazes().isEmpty()); assertTrue(hasChunkWithGaze, "There must be at least one chunk containing gazes"); assertNotNull(details.getHints(), "Details hints should not be null"); } }