View Javadoc
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  }