View Javadoc
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      // add the container to the cache
62      timeseriesContainerService.getContainer(created.getId());
63      timeseriesContainerService.deleteContainer(created.getId());
64      assertThrows(InvalidPathException.class, () -> timeseriesContainerService.getContainer(created.getId()));
65    }
66  }