View Javadoc
1   package civitas.crypto.algorithms.tests;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.mockito.Mockito.verify;
5   import static org.mockito.Mockito.verifyNoInteractions;
6   
7   import org.junit.jupiter.api.DisplayName;
8   import org.junit.jupiter.api.Test;
9   import org.mockito.InjectMocks;
10  import org.mockito.Mock;
11  
12  import civitas.crypto.CryptoBase;
13  import civitas.crypto.algorithms.GenerateRandomInt;
14  import civitas.util.tests.BasicValuesTestData;
15  import io.github.magwas.konveyor.testing.TestBase;
16  
17  class GenerateRandomIntTest extends TestBase implements BasicValuesTestData {
18  	@InjectMocks
19  	GenerateRandomInt generateRandomInt;
20  
21  	@Mock
22  	CryptoBase cryptoBase;
23  
24  	@Test
25  	@DisplayName("uses the right random number generator")
26  	void test4() {
27  		int actual = generateRandomInt.apply(SOME_SMALL_INT);
28  		verify(cryptoBase.getRandomGenerator()).nextInt(SOME_SMALL_INT);
29  		assertEquals(SOME_SMALL_INT - 1, actual, "actual:" + actual);
30  	}
31  
32  	@Test
33  	@DisplayName("if n < 0, returns 0")
34  	void test2() {
35  		int actual = generateRandomInt.apply(-1);
36  		verifyNoInteractions(cryptoBase.getRandomGenerator());
37  		assertEquals(0, actual);
38  	}
39  
40  	@Test
41  	@DisplayName("if n == 0, returns 0")
42  	void test3() throws IllegalAccessException {
43  		int actual = generateRandomInt.apply(0);
44  		verifyNoInteractions(cryptoBase.getRandomGenerator());
45  		assertEquals(0, actual);
46  	}
47  }