1 package de.dlr.shepard.data.timeseries.services;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertThrows;
5 import static org.junit.jupiter.api.Assertions.assertTrue;
6 import static org.mockito.Mockito.when;
7
8 import de.dlr.shepard.auth.security.AuthenticationContext;
9 import de.dlr.shepard.auth.users.entities.User;
10 import de.dlr.shepard.auth.users.services.UserService;
11 import de.dlr.shepard.common.exceptions.InvalidPathException;
12 import de.dlr.shepard.data.timeseries.io.TimeseriesContainerIO;
13 import io.quarkus.test.InjectMock;
14 import io.quarkus.test.junit.QuarkusTest;
15 import jakarta.inject.Inject;
16 import jakarta.transaction.Transactional;
17 import org.junit.jupiter.api.Test;
18
19 @QuarkusTest
20 public class TimeseriesContainerServiceTest {
21
22 @InjectMock
23 UserService userService;
24
25 @InjectMock
26 AuthenticationContext authenticationContext;
27
28 @Inject
29 TimeseriesContainerService timeseriesContainerService;
30
31 private final String containerName = "AnotherContainer";
32
33 @Test
34 @Transactional
35 public void createContainer_containerDoesNotExist_containerIsCreated() {
36 User user = new User("Alice");
37
38 TimeseriesContainerIO timeseriesContainerIO = new TimeseriesContainerIO();
39 timeseriesContainerIO.setName(containerName);
40
41 when(userService.getCurrentUser()).thenReturn(user);
42
43 var created = timeseriesContainerService.createContainer(timeseriesContainerIO);
44
45 assertEquals(containerName, created.getName());
46 assertTrue(created.getId() >= 0);
47 }
48
49 @Test
50 @Transactional
51 public void deleteContainer_containerExists_containerIsDeleted() {
52 User user = new User("Alice");
53
54 TimeseriesContainerIO timeseriesContainerIO = new TimeseriesContainerIO();
55 timeseriesContainerIO.setName(containerName);
56
57 when(userService.getCurrentUser()).thenReturn(user);
58 when(authenticationContext.getCurrentUserName()).thenReturn(user.getUsername());
59
60 var created = timeseriesContainerService.createContainer(timeseriesContainerIO);
61
62 timeseriesContainerService.getContainer(created.getId());
63 timeseriesContainerService.deleteContainer(created.getId());
64 assertThrows(InvalidPathException.class, () -> timeseriesContainerService.getContainer(created.getId()));
65 }
66 }