1 package civitas.crypto.algorithms;
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
11 import civitas.util.BasicValuesTestData;
12 import io.github.magwas.testing.TestBase;
13
14 class GenerateRandomIntTest extends TestBase implements BasicValuesTestData {
15 @InjectMocks
16 GenerateRandomInt generateRandomInt;
17
18 @Test
19 @DisplayName("uses the right random number generator")
20 void test4() {
21 int actual = generateRandomInt.apply(SOME_SMALL_INT);
22 verify(generateRandomInt.cryptoBase.getRandomGenerator()).nextInt(SOME_SMALL_INT);
23 assertEquals(SOME_SMALL_INT - 1, actual, "actual:" + actual);
24 }
25
26 @Test
27 @DisplayName("if n < 0, returns 0")
28 void test2() {
29 int actual = generateRandomInt.apply(-1);
30 verifyNoInteractions(generateRandomInt.cryptoBase.getRandomGenerator());
31 assertEquals(0, actual);
32 }
33
34 @Test
35 @DisplayName("if n == 0, returns 0")
36 void test3() {
37 int actual = generateRandomInt.apply(0);
38 verifyNoInteractions(generateRandomInt.cryptoBase.getRandomGenerator());
39 assertEquals(0, actual);
40 }
41 }