View Javadoc
1   package civitas.functionaltests;
2   
3   import static org.junit.jupiter.api.Assertions.assertTrue;
4   import static org.junit.jupiter.api.Assertions.fail;
5   
6   import java.util.Arrays;
7   
8   import org.junit.jupiter.api.DisplayName;
9   import org.junit.jupiter.api.Tag;
10  import org.junit.jupiter.api.Test;
11  import org.junit.jupiter.api.extension.ExtendWith;
12  import org.springframework.beans.factory.annotation.Autowired;
13  import org.springframework.test.context.ContextConfiguration;
14  import org.springframework.test.context.junit.jupiter.SpringExtension;
15  
16  import civitas.AppTestConfig;
17  import civitas.crypto.algorithms.CreatePermutation;
18  import civitas.crypto.rsaprivatekey.tests.PrivateKeyTestData;
19  import civitas.util.tests.BasicValuesTestData;
20  
21  @Tag("functional")
22  @ExtendWith(SpringExtension.class)
23  @ContextConfiguration(classes = AppTestConfig.class)
24  class CreatePermutationFunctionalTest implements PrivateKeyTestData, BasicValuesTestData {
25  
26  	@Autowired
27  	CreatePermutation createPermutation;
28  
29  	@Test
30  	@DisplayName("createPermutation creates a permutation of given size")
31  	void createPermutation() {
32  
33  		int[] permutation = createPermutation.apply(SOME_SMALL_INT);
34  		var hasIt = new boolean[SOME_SMALL_INT];
35  		Arrays.fill(hasIt, false);
36  		for (int i = 0; i < SOME_SMALL_INT; i++) {
37  			hasIt[permutation[i]] = true;
38  		}
39  		for (int i = 0; i < SOME_SMALL_INT; i++) {
40  			if (!hasIt[i]) {
41  				fail();
42  			}
43  		}
44  		assertTrue(true);
45  	}
46  }