1 package io.github.magwas.inez.storage.tests;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.mockito.Mockito.times;
5 import static org.mockito.Mockito.verify;
6 import static org.mockito.Mockito.verifyNoInteractions;
7
8 import java.util.List;
9
10 import org.junit.jupiter.api.DisplayName;
11 import org.junit.jupiter.api.Test;
12 import org.mockito.ArgumentCaptor;
13 import org.mockito.InjectMocks;
14
15 import io.github.magwas.inez.parse.tests.IdTestData;
16 import io.github.magwas.inez.storage.AddReferencesService;
17 import io.github.magwas.inez.storage.model.BridiReference;
18 import io.github.magwas.inez.storage.repository.BridiReferenceRepository;
19 import io.github.magwas.konveyor.testing.TestBase;
20 import io.github.magwas.konveyor.testing.TestUtil;
21
22 class AddReferencesServiceTest extends TestBase implements IdTestData {
23
24 @InjectMocks
25 AddReferencesService addReferences;
26
27 @Test
28 @DisplayName("for null references does nothing")
29 void test() throws IllegalAccessException {
30 addReferences.apply(ALICE_ID, null);
31 verifyNoInteractions(TestUtil.dependency(addReferences, BridiReferenceRepository.class));
32 }
33
34 @Test
35 @DisplayName("for empty references does nothing")
36 void test1() throws IllegalAccessException {
37 addReferences.apply(ALICE_ID, List.of());
38 verifyNoInteractions(TestUtil.dependency(addReferences, BridiReferenceRepository.class));
39 }
40
41 @Test
42 @DisplayName("for each reference adds an entry to the bridireferencerepository")
43 void test2() throws IllegalAccessException {
44 addReferences.apply(ALICE_ID, List.of(IS_A_ID, SUMTI_ID));
45 ArgumentCaptor<BridiReference> argument = ArgumentCaptor.forClass(BridiReference.class);
46 verify(TestUtil.dependency(addReferences, BridiReferenceRepository.class), times(2))
47 .save(argument.capture());
48 List<BridiReference> values = argument.getAllValues();
49 assertEquals(ALICE_ID, values.get(0).bridiId());
50 assertEquals(ALICE_ID, values.get(1).bridiId());
51 assertEquals(IS_A_ID, values.get(0).selbriId());
52 assertEquals(IS_A_ID, values.get(1).selbriId());
53 assertEquals(IS_A_ID, values.get(0).sumtiId());
54 assertEquals(SUMTI_ID, values.get(1).sumtiId());
55 }
56 }