View Javadoc
1   package io.github.magwas.inez.storage;
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.IdTestData;
16  import io.github.magwas.inez.storage.model.BridiReference;
17  import io.github.magwas.testing.TestBase;
18  
19  class AddReferencesServiceTest extends TestBase implements IdTestData {
20  
21  	@InjectMocks
22  	AddReferencesService addReferences;
23  
24  	@Test
25  	@DisplayName("for null references does nothing")
26  	void test() {
27  		addReferences.apply(ALICE_ID, null);
28  		verifyNoInteractions(addReferences.bridiReferenceRepository);
29  	}
30  
31  	@Test
32  	@DisplayName("for empty references does nothing")
33  	void test1() {
34  		addReferences.apply(ALICE_ID, List.of());
35  		verifyNoInteractions(addReferences.bridiReferenceRepository);
36  	}
37  
38  	@Test
39  	@DisplayName("for each reference adds an entry to the bridireferencerepository")
40  	void test2() {
41  		addReferences.apply(ALICE_ID, List.of(IS_A_ID, SUMTI_ID));
42  		ArgumentCaptor<BridiReference> argument = ArgumentCaptor.forClass(BridiReference.class);
43  		verify(addReferences.bridiReferenceRepository, times(2)).save(argument.capture());
44  		List<BridiReference> values = argument.getAllValues();
45  		assertEquals(ALICE_ID, values.get(0).bridiId());
46  		assertEquals(ALICE_ID, values.get(1).bridiId());
47  		assertEquals(IS_A_ID, values.get(0).selbriId());
48  		assertEquals(IS_A_ID, values.get(1).selbriId());
49  		assertEquals(IS_A_ID, values.get(0).sumtiId());
50  		assertEquals(SUMTI_ID, values.get(1).sumtiId());
51  	}
52  }