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.common.RandomAwareTestBase;
18  import civitas.crypto.algorithms.CreatePermutation;
19  import civitas.crypto.rsaprivatekey.PrivateKeyTestData;
20  import civitas.util.BasicValuesTestData;
21  
22  @Tag("functional")
23  @ExtendWith(SpringExtension.class)
24  @ContextConfiguration(classes = AppTestConfig.class)
25  class CreatePermutationFunctionalTest extends RandomAwareTestBase implements PrivateKeyTestData, BasicValuesTestData {
26  
27  	@Autowired
28  	CreatePermutation createPermutation;
29  
30  	@Test
31  	@DisplayName("createPermutation creates a permutation of given size")
32  	void createPermutation() {
33  
34  		int[] permutation = createPermutation.apply(SOME_SMALL_INT);
35  		boolean[] hasIt = new boolean[SOME_SMALL_INT];
36  		Arrays.fill(hasIt, false);
37  		for (int i = 0; i < SOME_SMALL_INT; i++) {
38  			hasIt[permutation[i]] = true;
39  		}
40  		for (int i = 0; i < SOME_SMALL_INT; i++) {
41  			if (!hasIt[i]) {
42  				fail();
43  			}
44  		}
45  		assertTrue(true);
46  	}
47  }