Initial commit
This commit is contained in:
@@ -0,0 +1,426 @@
|
||||
package com.mattrixwv.cipherstream.utils;
|
||||
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.mattrixwv.cipherstream.exception.InvalidCipherParameterException;
|
||||
|
||||
|
||||
@Tag("unit-test")
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class CipherParameterUtilTest{
|
||||
private static final ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
|
||||
@Test
|
||||
public void testVerifyUniversalParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Capitals
|
||||
params.remove(CipherParameterUtil.PRESERVE_CAPITALS);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
//Integer Capitals
|
||||
params.put(CipherParameterUtil.PRESERVE_CAPITALS, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
|
||||
//Missing Whitespace
|
||||
params.remove(CipherParameterUtil.PRESERVE_WHITESPACE);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
//Integer Whitespace
|
||||
params.put(CipherParameterUtil.PRESERVE_WHITESPACE, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
|
||||
//Missing Symbols
|
||||
params.remove(CipherParameterUtil.PRESERVE_SYMBOLS);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
//Integer Symbols
|
||||
params.put(CipherParameterUtil.PRESERVE_SYMBOLS, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
|
||||
//Missing Input
|
||||
params.remove(CipherParameterUtil.INPUT_STRING);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
//Integer Input
|
||||
params.put(CipherParameterUtil.INPUT_STRING, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.INPUT_STRING, "Input String");
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyUniversalParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyParamsWithKeyword(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Keyword
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyParamsWithKeyword(params);
|
||||
});
|
||||
//Integer Keyword
|
||||
params.put(CipherParameterUtil.KEYWORD, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyParamsWithKeyword(params);
|
||||
});
|
||||
|
||||
//Full
|
||||
params.put(CipherParameterUtil.KEYWORD, CipherParameterUtil.KEYWORD);
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyParamsWithKeyword(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyCaesarParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing shift
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyCaesarParams(params);
|
||||
});
|
||||
//String shift
|
||||
params.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, "1");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyCaesarParams(params);
|
||||
});
|
||||
|
||||
//Full
|
||||
params.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, 1);
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyCaesarParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyAffineParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Key1
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyAffineParams(params);
|
||||
});
|
||||
//String Key1
|
||||
params.put(CipherParameterUtil.AFFINE_KEY_1, "1");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyAffineParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.AFFINE_KEY_1, 1);
|
||||
|
||||
//Missing Key2
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyAffineParams(params);
|
||||
});
|
||||
//String Key2
|
||||
params.put(CipherParameterUtil.AFFINE_KEY_2, "1");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyAffineParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.AFFINE_KEY_2, 1);
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyAffineParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyAtbashParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyAtbashParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyBaconianParams(){
|
||||
ObjectNode params = objectMapper.createObjectNode();
|
||||
|
||||
//Missing Capitals
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaconianParams(params);
|
||||
});
|
||||
//Integer Capitals
|
||||
params.put(CipherParameterUtil.PRESERVE_CAPITALS, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaconianParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
|
||||
//Missing Input
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaconianParams(params);
|
||||
});
|
||||
//Integer Input
|
||||
params.put(CipherParameterUtil.INPUT_STRING, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaconianParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.INPUT_STRING, "Input String");
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyBaconianParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyBaseXParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Input
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaseXParams(params);
|
||||
});
|
||||
//Integer Input
|
||||
params.put(CipherParameterUtil.INPUT_STRING, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaseXParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.INPUT_STRING, CipherParameterUtil.INPUT_STRING);
|
||||
|
||||
//Missing BaseX
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaseXParams(params);
|
||||
});
|
||||
//String BaseX
|
||||
params.put(CipherParameterUtil.BASE_X_BASE, "2");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyBaseXParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.BASE_X_BASE, 2);
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyBaseXParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifySquareKeyword(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Keyword
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifySquareKeyword(params);
|
||||
});
|
||||
|
||||
//Integer Keyword
|
||||
params.put(CipherParameterUtil.SQUARE_KEYWORD, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifySquareKeyword(params);
|
||||
});
|
||||
|
||||
//Full
|
||||
params.put(CipherParameterUtil.SQUARE_KEYWORD, "squareKeyword");
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifySquareKeyword(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyHillParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Key
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyHillParams(params);
|
||||
});
|
||||
|
||||
//Integer Key
|
||||
params.put(CipherParameterUtil.HILL_KEY, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyHillParams(params);
|
||||
});
|
||||
|
||||
//1D Array Key
|
||||
params.set(CipherParameterUtil.HILL_KEY, objectMapper.valueToTree(new int[]{1}));
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyHillParams(params);
|
||||
});
|
||||
|
||||
//String Array Key
|
||||
params.set(CipherParameterUtil.HILL_KEY, objectMapper.valueToTree(new String[][]{{"test"}}));
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyHillParams(params);
|
||||
});
|
||||
|
||||
//Full
|
||||
params.set(CipherParameterUtil.HILL_KEY, objectMapper.valueToTree(new int[][]{{1}}));
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyHillParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyMorseParams(){
|
||||
ObjectNode params = objectMapper.createObjectNode();
|
||||
|
||||
//Missing Input
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyMorseParams(params);
|
||||
});
|
||||
//Integer Input
|
||||
params.put(CipherParameterUtil.INPUT_STRING, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyMorseParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.INPUT_STRING, "Input String");
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyMorseParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyPolybiusParams(){
|
||||
ObjectNode params = objectMapper.createObjectNode();
|
||||
|
||||
//Missing Whitespace
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
//String Whitespace
|
||||
params.put(CipherParameterUtil.PRESERVE_WHITESPACE, "true");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
|
||||
//Missing Symbols
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
//String Symbols
|
||||
params.put(CipherParameterUtil.PRESERVE_SYMBOLS, "true");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
|
||||
//Missing Input
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
//Integer Input
|
||||
params.put(CipherParameterUtil.INPUT_STRING, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.INPUT_STRING, "");
|
||||
|
||||
//Missing Keyword
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
//Integer Keyword
|
||||
params.put(CipherParameterUtil.KEYWORD, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.KEYWORD, CipherParameterUtil.KEYWORD);
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyPolybiusParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyRailFenceParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
|
||||
//Missing Rails
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyRailFenceParams(params);
|
||||
});
|
||||
//String rails
|
||||
params.put(CipherParameterUtil.RAIL_FENCE_RAILS, "1");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyRailFenceParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.RAIL_FENCE_RAILS, 1);
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyRailFenceParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVerifyTrifidParams(){
|
||||
ObjectNode params = setUniversalParams();
|
||||
params.put(CipherParameterUtil.KEYWORD, CipherParameterUtil.KEYWORD);
|
||||
|
||||
//Missing fill
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
//Integer fill
|
||||
params.put(CipherParameterUtil.TRIFID_FILL, 1);
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
//String fill
|
||||
params.put(CipherParameterUtil.TRIFID_FILL, "Input");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.TRIFID_FILL, "+");
|
||||
|
||||
//Missing length
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
//String length
|
||||
params.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, "2");
|
||||
assertThrows(InvalidCipherParameterException.class, () -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
params.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, 2);
|
||||
|
||||
//Full
|
||||
assertDoesNotThrow(() -> {
|
||||
CipherParameterUtil.verifyTrifidParams(params);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private ObjectNode setUniversalParams(){
|
||||
ObjectNode universalParams = objectMapper.createObjectNode();
|
||||
universalParams.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
universalParams.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
universalParams.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
universalParams.put(CipherParameterUtil.INPUT_STRING, "Input String");
|
||||
return universalParams;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user