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 }