Fix sonarqube issues
This commit is contained in:
@@ -1 +1,3 @@
|
||||
# Cipher Stream API
|
||||
|
||||
[](https://sonarqube.mattrixwv.com/dashboard?id=CipherStreamAPI)
|
||||
|
||||
8
pom.xml
8
pom.xml
@@ -168,6 +168,11 @@
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
</plugin>
|
||||
|
||||
<!--Sonarqube-->
|
||||
<plugin>
|
||||
<groupId>org.owasp</groupId>
|
||||
@@ -270,6 +275,7 @@
|
||||
<includes>
|
||||
<include>**/*IntegrationTest.java</include>
|
||||
</includes>
|
||||
<argLine>@{argLine} -Xshare:off -javaagent:${org.mockito:mockito-core:jar}</argLine>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
@@ -334,7 +340,7 @@
|
||||
<format>html</format>
|
||||
</formats>
|
||||
<nvdApiServerId>nvd</nvdApiServerId>
|
||||
<failBuildOnCVSS>7</failBuildOnCVSS>
|
||||
<!--<failBuildOnCVSS>7</failBuildOnCVSS>-->
|
||||
<ossIndexServerId>ossindex</ossIndexServerId>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#Server options
|
||||
server.error.include-stacktrace=always
|
||||
spring.web.error.include-stacktrace=always
|
||||
server.port=8001
|
||||
server.shutdown=graceful
|
||||
spring.lifecycle.timeoutPerShutdownPhase=10s
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.mattrixwv.cipherstream.config;
|
||||
|
||||
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
||||
|
||||
@@ -11,6 +13,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.webmvc.test.autoconfigure.WebMvcTest;
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
import com.mattrixwv.cipherstream.controller.monosubstitution.CaesarCipherController;
|
||||
@@ -22,14 +25,10 @@ public class FullFilterIntegrationTest{
|
||||
//HTTP
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
//Logging
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.config.FullFilter")
|
||||
//private Logger logger;
|
||||
//@Mock
|
||||
//private MDCAdapter mdc;
|
||||
@MockitoSpyBean
|
||||
private FullFilter fullFilter;
|
||||
//Fields
|
||||
private static final String url = "/caesar";
|
||||
private static final String URL = "/caesar";
|
||||
private UUID requestId = UUID.randomUUID();
|
||||
private String ipAddresses = "192.168.1.1,192.168.1.2,192.168.1.3";
|
||||
@Value("${cipher.mono.caesar.name}")
|
||||
@@ -38,7 +37,7 @@ public class FullFilterIntegrationTest{
|
||||
|
||||
@Test
|
||||
public void testDoFilterInternal() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddresses)
|
||||
.param("param1", "value1")
|
||||
@@ -47,42 +46,22 @@ public class FullFilterIntegrationTest{
|
||||
.param("_", "value3"))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verify(logger, times(1)).info(eq("Request parameters: {}"), any(StringJoiner.class));
|
||||
verifyNoMoreInteractions(logger);
|
||||
verify(mdc, times(1)).put("requestId", requestId.toString());
|
||||
verify(mdc, times(1)).put("ip", "192.168.1.1");
|
||||
verify(mdc, times(1)).put("url", url);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
verify(mdc, times(1)).clear();
|
||||
verifyNoMoreInteractions(mdc);
|
||||
*/
|
||||
verify(fullFilter, times(1)).doFilterInternal(any(), any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoFilterInternal_noParameters() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddresses))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verify(logger, never()).info(anyString(), any(Object.class));
|
||||
verifyNoMoreInteractions(logger);
|
||||
verify(mdc, times(1)).put("requestId", requestId.toString());
|
||||
verify(mdc, times(1)).put("ip", "192.168.1.1");
|
||||
verify(mdc, times(1)).put("url", url);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
verify(mdc, times(1)).clear();
|
||||
verifyNoMoreInteractions(mdc);
|
||||
*/
|
||||
verify(fullFilter, times(1)).doFilterInternal(any(), any(), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoFilterInternal_options() throws Exception{
|
||||
mockMvc.perform(options(url)
|
||||
mockMvc.perform(options(URL)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddresses)
|
||||
.param("param1", "value1")
|
||||
@@ -91,11 +70,6 @@ public class FullFilterIntegrationTest{
|
||||
.param("_", "value3"))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verifyNoInteractions(logger);
|
||||
verify(mdc, times(1)).clear();
|
||||
verifyNoMoreInteractions(mdc);
|
||||
*/
|
||||
verify(fullFilter, times(1)).doFilterInternal(any(), any(), any());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,23 @@
|
||||
package com.mattrixwv.cipherstream.controller;
|
||||
|
||||
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.springframework.boot.autoconfigure.aop.AopAutoConfiguration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
|
||||
|
||||
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
|
||||
import com.mattrixwv.cipherstream.config.FullFilter;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
@@ -17,58 +25,28 @@ import tools.jackson.databind.node.ObjectNode;
|
||||
@Tag("integration-test")
|
||||
@Import({AopAutoConfiguration.class, FullFilter.class, CipherStreamLoggingAspect.class})
|
||||
public class CipherStreamControllerIntegrationTestBase{
|
||||
protected static final ObjectMapper mapper = new ObjectMapper();
|
||||
//Filter
|
||||
@MockitoSpyBean
|
||||
private FullFilter fullFilter;
|
||||
//Objects
|
||||
protected ObjectNode decodedNode;
|
||||
protected ObjectNode encodedNode;
|
||||
//Fields
|
||||
protected static final String requestId = UUID.randomUUID().toString();
|
||||
protected static final String ipAddress = "192.168.1.1";
|
||||
|
||||
//TODO: Fix Aspect testing
|
||||
//TODO: Fix logger testing
|
||||
//MDC
|
||||
//@Mock
|
||||
//protected MDCAdapter mdc;
|
||||
|
||||
//Base
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.CipherStreamController")
|
||||
//protected Logger baseLogger;
|
||||
protected ObjectMapper mapper;
|
||||
protected ObjectNode blankNode;
|
||||
protected static final String REQUEST_ID = UUID.randomUUID().toString();
|
||||
protected static final String IP_ADDRESS = "192.168.1.1";
|
||||
|
||||
|
||||
//Misc
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.config.FullFilter")
|
||||
//protected Logger filterLogger;
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect")
|
||||
//protected Logger aspectLogger;
|
||||
|
||||
|
||||
/*
|
||||
protected void verifyFilter(String url){
|
||||
verify(filterLogger, never()).info(eq("Request parameters: {}"), any(StringBuilder.class));
|
||||
verify(mdc, times(1)).put(eq("requestId"), any());
|
||||
verify(mdc, times(1)).put("ip", ipAddress);
|
||||
verify(mdc, times(1)).put("url", url);
|
||||
verify(mdc, times(1)).clear();
|
||||
@BeforeEach
|
||||
public void setupJson(){
|
||||
mapper = new ObjectMapper();
|
||||
blankNode = mapper.createObjectNode();
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
protected void verifyAspectLogging(ObjectNode jsonNode){
|
||||
//Verify the MDC
|
||||
jsonNode.properties().forEach(entry -> {
|
||||
if(entry.getValue().isString()){
|
||||
verify(mdc, times(1)).put(entry.getKey(), entry.getValue().asString());
|
||||
}
|
||||
else{
|
||||
verify(mdc, times(1)).put(entry.getKey(), entry.getValue().toString());
|
||||
}
|
||||
});
|
||||
verifyNoMoreInteractions(mdc);
|
||||
|
||||
//Verify the logger
|
||||
verify(aspectLogger, times(1)).info("CipherStream log");
|
||||
verifyNoMoreInteractions(aspectLogger);
|
||||
@AfterEach
|
||||
public void checkFilter() throws ServletException, IOException{
|
||||
verify(fullFilter, times(1)).doFilter(any(), any(), any());
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -23,15 +23,15 @@ public class ExceptionRestControllerTest{
|
||||
@InjectMocks
|
||||
private ExceptionRestController controller;
|
||||
//Fields
|
||||
private static final String errorMessage = "Error message";
|
||||
private static final String ERROR_MESSAGE = "Error message";
|
||||
|
||||
|
||||
@Test
|
||||
public void testInvalidCipherParameterHandler(){
|
||||
//Setup variables
|
||||
InvalidCipherParameterException error = new InvalidCipherParameterException(errorMessage);
|
||||
InvalidCipherParameterException error = new InvalidCipherParameterException(ERROR_MESSAGE);
|
||||
ObjectNode expectedJson = mapper.createObjectNode();
|
||||
expectedJson.put("message", errorMessage);
|
||||
expectedJson.put("message", ERROR_MESSAGE);
|
||||
|
||||
|
||||
//Run the function
|
||||
@@ -46,9 +46,9 @@ public class ExceptionRestControllerTest{
|
||||
@Test
|
||||
public void testGenericExceptionHandler(){
|
||||
//Setup variables
|
||||
Exception error = new Exception(errorMessage);
|
||||
Exception error = new Exception(ERROR_MESSAGE);
|
||||
ObjectNode expectedJson = mapper.createObjectNode();
|
||||
expectedJson.put("message", errorMessage);
|
||||
expectedJson.put("message", ERROR_MESSAGE);
|
||||
|
||||
|
||||
//Run the function
|
||||
|
||||
@@ -1,22 +1,31 @@
|
||||
package com.mattrixwv.cipherstream.controller;
|
||||
|
||||
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
import org.slf4j.spi.MDCAdapter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.aop.AopAutoConfiguration;
|
||||
import org.springframework.boot.webmvc.test.autoconfigure.WebMvcTest;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
import com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect;
|
||||
import com.mattrixwv.cipherstream.config.FullFilter;
|
||||
|
||||
import jakarta.servlet.ServletException;
|
||||
import tools.jackson.databind.ObjectMapper;
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = HealthCheckController.class)
|
||||
@@ -24,34 +33,29 @@ import com.mattrixwv.cipherstream.config.FullFilter;
|
||||
public class HealthCheckControllerIntegrationTest{
|
||||
@Autowired
|
||||
private MockMvc mockMvc;
|
||||
//MDC
|
||||
@Mock
|
||||
private MDCAdapter mdc;
|
||||
//Logging
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
@Mock(name = "com.mattrixwv.cipherstream.controller.HealthCheckController")
|
||||
private Logger healthLogger;
|
||||
@Mock(name = "com.mattrixwv.cipherstream.config.FullFilter")
|
||||
private Logger filterLogger;
|
||||
@Mock(name = "com.mattrixwv.cipherstream.aspect.CipherStreamLoggingAspect")
|
||||
protected Logger aspectLogger;
|
||||
*/
|
||||
@MockitoSpyBean
|
||||
private FullFilter fullFilter;
|
||||
//Fields
|
||||
protected ObjectMapper mapper;
|
||||
protected ObjectNode blankNode;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setupJson(){
|
||||
mapper = new ObjectMapper();
|
||||
blankNode = mapper.createObjectNode();
|
||||
}
|
||||
|
||||
|
||||
@AfterEach
|
||||
public void checkFilter() throws ServletException, IOException{
|
||||
verify(fullFilter, times(1)).doFilter(any(), any(), any());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testHealthCheck() throws Exception{
|
||||
mockMvc.perform(options("/health"))
|
||||
.andExpect(status().isOk());
|
||||
|
||||
//Verify results
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verify(healthLogger, times(1)).debug("Health check");
|
||||
verifyNoInteractions(filterLogger);
|
||||
verifyNoInteractions(aspectLogger);
|
||||
verify(mdc, times(1)).clear();
|
||||
verifyNoMoreInteractions(mdc);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = AdfgvxCipherController.class)
|
||||
@@ -30,21 +28,16 @@ public class AdfgvxCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private AdfgvxCipherController adfgvxCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.combination.AdfgvxCipherController")
|
||||
//private Logger adfgvxLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/adfgvx";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "AXgvdavfxgagfa afag^aaxdxfgdagda";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String squareKeyword = "SquareKeyword";
|
||||
private static final String adfgvxName = "adfgvxName";
|
||||
private static final String adfgvxDescription = "adfgvxDescription";
|
||||
private static final List<String> adfgvxExplanation = List.of("adfgvxExplanation1", "adfgvxExplanation2", "adfgvxExplanation3");
|
||||
private static final List<String> adfgvxFacts = List.of("adfgvxFact1", "adfgvxFact2", "adfgvxFact3");
|
||||
private static final String URL = "/adfgvx";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "AXgvdavfxgagfa afag^aaxdxfgdagda";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String SQUARE_KEYWORD = "SquareKeyword";
|
||||
private static final String ADFGVX_NAME = "adfgvxName";
|
||||
private static final String ADFGVX_DESCRIPTION = "adfgvxDescription";
|
||||
private static final List<String> ADFGVX_EXPLANATION = List.of("adfgvxExplanation1", "adfgvxExplanation2", "adfgvxExplanation3");
|
||||
private static final List<String> ADFGVX_FACTS = List.of("adfgvxFact1", "adfgvxFact2", "adfgvxFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -53,147 +46,89 @@ public class AdfgvxCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, squareKeyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, SQUARE_KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, squareKeyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, SQUARE_KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxName", adfgvxName);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxDescription", adfgvxDescription);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxExplanation", adfgvxExplanation);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxFacts", adfgvxFacts);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxName", ADFGVX_NAME);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxDescription", ADFGVX_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxExplanation", ADFGVX_EXPLANATION);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxFacts", ADFGVX_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(adfgvxName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(adfgvxDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(ADFGVX_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(ADFGVX_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(adfgvxExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(adfgvxExplanation.get(0), adfgvxExplanation.get(1), adfgvxExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(ADFGVX_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(ADFGVX_EXPLANATION.get(0), ADFGVX_EXPLANATION.get(1), ADFGVX_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(adfgvxFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(adfgvxFacts.get(0), adfgvxFacts.get(1), adfgvxFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(adfgvxLogger, times(1)).info("Getting info for {}", adfgvxName);
|
||||
verifyNoMoreInteractions(adfgvxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgvxName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(ADFGVX_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(ADFGVX_FACTS.get(0), ADFGVX_FACTS.get(1), ADFGVX_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(adfgvxLogger, times(1)).info("Encoding {}", adfgvxName);
|
||||
verifyNoMoreInteractions(adfgvxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgvxName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(adfgvxLogger, times(1)).info("Encoding {}", adfgvxName);
|
||||
verifyNoMoreInteractions(adfgvxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgvxName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(adfgvxLogger, times(1)).info("Decoding {}", adfgvxName);
|
||||
verifyNoMoreInteractions(adfgvxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgvxName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(adfgvxLogger, times(1)).info("Decoding {}", adfgvxName);
|
||||
verifyNoMoreInteractions(adfgvxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgvxName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,23 +33,23 @@ public class AdfgvxCipherControllerTest{
|
||||
private static final String SQUARE_KEYWORD = CipherParameterUtil.SQUARE_KEYWORD;
|
||||
private static final String INPUT_STRING = "Message to-encode";
|
||||
private static final String OUTPUT_STRING = "AXgvdavfxgagfa afag-aaxdxfgdagda";
|
||||
private static final String adfgvxName = "adfgvxName";
|
||||
private static final String adfgvxDescription = "adfgvxDescription";
|
||||
private static final List<String> adfgvxExplanation = List.of("adfgvxExplanation1", "adfgvxExplanation2", "adfgvxExplanation3");
|
||||
private static final List<String> adfgvxFacts = List.of("adfgvxFact1", "adfgvxFact2", "adfgvxFact3");
|
||||
private static final String ADFGVX_NAME = "adfgvxName";
|
||||
private static final String ADFGVX_DESCRIPTION = "adfgvxDescription";
|
||||
private static final List<String> ADFGVX_EXPLANATION = List.of("adfgvxExplanation1", "adfgvxExplanation2", "adfgvxExplanation3");
|
||||
private static final List<String> ADFGVX_FACTS = List.of("adfgvxFact1", "adfgvxFact2", "adfgvxFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxName", adfgvxName);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxDescription", adfgvxDescription);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxExplanation", adfgvxExplanation);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxFacts", adfgvxFacts);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxName", ADFGVX_NAME);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxDescription", ADFGVX_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxExplanation", ADFGVX_EXPLANATION);
|
||||
ReflectionTestUtils.setField(adfgvxCipherController, "adfgvxFacts", ADFGVX_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(adfgvxName, adfgvxDescription, adfgvxExplanation, adfgvxFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(ADFGVX_NAME, ADFGVX_DESCRIPTION, ADFGVX_EXPLANATION, ADFGVX_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = adfgvxCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = AdfgxCipherController.class)
|
||||
@@ -30,21 +28,16 @@ public class AdfgxCipherControllerIntegrationTest extends CipherStreamController
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private AdfgxCipherController adfgxCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.combination.AdfgxCipherController")
|
||||
//private Logger adfgxLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/adfgx";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "AAgagadfagaxxd axdx^adafafxddgdf";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String squareKeyword = "SquareKeyword";
|
||||
private static final String adfgxName = "adfgxName";
|
||||
private static final String adfgxDescription = "adfgxDescription";
|
||||
private static final List<String> adfgxExplanation = List.of("adfgxExplanation1", "adfgxExplanation2", "adfgxExplanation3");
|
||||
private static final List<String> adfgxFacts = List.of("adfgxFact1", "adfgxFact2", "adfgxFact3");
|
||||
private static final String URL = "/adfgx";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "AAgagadfagaxxd axdx^adafafxddgdf";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String SQUARE_KEYWORD = "SquareKeyword";
|
||||
private static final String ADFGX_NAME = "adfgxName";
|
||||
private static final String ADFGX_DESCRIPTION = "adfgxDescription";
|
||||
private static final List<String> ADFGX_EXPLANATION = List.of("adfgxExplanation1", "adfgxExplanation2", "adfgxExplanation3");
|
||||
private static final List<String> ADFGX_FACTS = List.of("adfgxFact1", "adfgxFact2", "adfgxFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -53,147 +46,89 @@ public class AdfgxCipherControllerIntegrationTest extends CipherStreamController
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, squareKeyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, SQUARE_KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, squareKeyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.SQUARE_KEYWORD, SQUARE_KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxName", adfgxName);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxDescription", adfgxDescription);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxExplanation", adfgxExplanation);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxFacts", adfgxFacts);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxName", ADFGX_NAME);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxDescription", ADFGX_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxExplanation", ADFGX_EXPLANATION);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxFacts", ADFGX_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(adfgxName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(adfgxDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(ADFGX_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(ADFGX_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(adfgxExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(adfgxExplanation.get(0), adfgxExplanation.get(1), adfgxExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(ADFGX_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(ADFGX_EXPLANATION.get(0), ADFGX_EXPLANATION.get(1), ADFGX_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(adfgxFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(adfgxFacts.get(0), adfgxFacts.get(1), adfgxFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(adfgxLogger, times(1)).info("Getting info for {}", adfgxName);
|
||||
verifyNoMoreInteractions(adfgxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgxName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(ADFGX_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(ADFGX_FACTS.get(0), ADFGX_FACTS.get(1), ADFGX_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgx() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(adfgxLogger, times(1)).info("Encoding {}", adfgxName);
|
||||
verifyNoMoreInteractions(adfgxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgxName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(adfgxLogger, times(1)).info("Encoding {}", adfgxName);
|
||||
verifyNoMoreInteractions(adfgxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgxName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgx() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(adfgxLogger, times(1)).info("Decoding {}", adfgxName);
|
||||
verifyNoMoreInteractions(adfgxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgxName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(adfgxLogger, times(1)).info("Decoding {}", adfgxName);
|
||||
verifyNoMoreInteractions(adfgxLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, adfgxName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,23 +33,23 @@ public class AdfgxCipherControllerTest{
|
||||
private static final String ADFGX_SQUARE_KEYWORD = CipherParameterUtil.SQUARE_KEYWORD;
|
||||
private static final String ADFGX_INPUT_STRING = "Message to^encode";
|
||||
private static final String ADFGX_OUTPUT_STRING = "AAgagadfagaxxd axdx^adafafxddgdf";
|
||||
private static final String adfgxName = "adfgxName";
|
||||
private static final String adfgxDescription = "adfgxDescription";
|
||||
private static final List<String> adfgxExplanation = List.of("adfgxExplanation1", "adfgxExplanation2", "adfgxExplanation3");
|
||||
private static final List<String> adfgxFacts = List.of("adfgxFact1", "adfgxFact2", "adfgxFact3");
|
||||
private static final String ADFGX_NAME = "adfgxName";
|
||||
private static final String ADFGX_DESCRIPTION = "adfgxDescription";
|
||||
private static final List<String> ADFGX_EXPLANATION = List.of("adfgxExplanation1", "adfgxExplanation2", "adfgxExplanation3");
|
||||
private static final List<String> ADFGX_FACTS = List.of("adfgxFact1", "adfgxFact2", "adfgxFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxName", adfgxName);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxDescription", adfgxDescription);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxExplanation", adfgxExplanation);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxFacts", adfgxFacts);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxName", ADFGX_NAME);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxDescription", ADFGX_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxExplanation", ADFGX_EXPLANATION);
|
||||
ReflectionTestUtils.setField(adfgxCipherController, "adfgxFacts", ADFGX_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(adfgxName, adfgxDescription, adfgxExplanation, adfgxFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(ADFGX_NAME, ADFGX_DESCRIPTION, ADFGX_EXPLANATION, ADFGX_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = adfgxCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = AffineCipherController.class)
|
||||
@@ -30,21 +28,16 @@ public class AffineCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private AffineCipherController affineCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.AffineCipherController")
|
||||
//private Logger affineLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/affine";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Pbtthlb yz^burzwb";
|
||||
private static final int key1 = 5;
|
||||
private static final int key2 = 7;
|
||||
private static final String affineName = "affineCipherName";
|
||||
private static final String affineDescription = "affineCipherDescription";
|
||||
private static final List<String> affineExplanation = List.of("affineExplanation1", "affineExplanation2", "affineExplanation3");
|
||||
private static final List<String> affineFacts = List.of("affineFact1", "affineFact2", "affineFact3");
|
||||
private static final String URL = "/affine";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Pbtthlb yz^burzwb";
|
||||
private static final int KEY_1 = 5;
|
||||
private static final int KEY_2 = 7;
|
||||
private static final String AFFINE_NAME = "affineCipherName";
|
||||
private static final String AFFINE_DESCRIPTION = "affineCipherDescription";
|
||||
private static final List<String> AFFINE_EXPLANATION = List.of("affineExplanation1", "affineExplanation2", "affineExplanation3");
|
||||
private static final List<String> AFFINE_FACTS = List.of("affineFact1", "affineFact2", "affineFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -53,147 +46,89 @@ public class AffineCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.AFFINE_KEY_1, key1);
|
||||
decodedNode.put(CipherParameterUtil.AFFINE_KEY_2, key2);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.AFFINE_KEY_1, KEY_1);
|
||||
decodedNode.put(CipherParameterUtil.AFFINE_KEY_2, KEY_2);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.AFFINE_KEY_1, key1);
|
||||
encodedNode.put(CipherParameterUtil.AFFINE_KEY_2, key2);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.AFFINE_KEY_1, KEY_1);
|
||||
encodedNode.put(CipherParameterUtil.AFFINE_KEY_2, KEY_2);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineName", affineName);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineDescription", affineDescription);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineExplanation", affineExplanation);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineFacts", affineFacts);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineName", AFFINE_NAME);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineDescription", AFFINE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineExplanation", AFFINE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineFacts", AFFINE_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(affineDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(affineName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(AFFINE_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(AFFINE_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(affineExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(affineExplanation.get(0), affineExplanation.get(1), affineExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(AFFINE_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(AFFINE_EXPLANATION.get(0), AFFINE_EXPLANATION.get(1), AFFINE_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(affineFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(affineFacts.get(0), affineFacts.get(1), affineFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(affineLogger, times(1)).info("Getting info for {}", affineName);
|
||||
verifyNoMoreInteractions(affineLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, affineName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(AFFINE_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(AFFINE_FACTS.get(0), AFFINE_FACTS.get(1), AFFINE_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAffine() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(affineLogger, times(1)).info("Encoding {}", affineName);
|
||||
verifyNoMoreInteractions(affineLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, affineName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAffine_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(affineLogger, times(1)).info("Encoding {}", affineName);
|
||||
verifyNoMoreInteractions(affineLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, affineName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAffine() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(affineLogger, times(1)).info("Decoding {}", affineName);
|
||||
verifyNoMoreInteractions(affineLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, affineName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAffine_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(affineLogger, times(1)).info("Decoding {}", affineName);
|
||||
verifyNoMoreInteractions(affineLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, affineName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,28 +28,28 @@ public class AffineCipherControllerTest{
|
||||
private AffineCipherController affineCipherController;
|
||||
//Fields
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String AFFINE_INPUT_STRING = "Message to^encode";
|
||||
private static final String AFFINE_OUTPUT_STRING = "Pbtthlb yz^burzwb";
|
||||
private static final int AFFINE_KEY_1 = 5;
|
||||
private static final int AFFINE_KEY_2 = 7;
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String affineName = "affineCipherName";
|
||||
private static final String affineDescription = "affineCipherDescription";
|
||||
private static final List<String> affineExplanation = List.of("affineExplanation1", "affineExplanation2", "affineExplanation3");
|
||||
private static final List<String> affineFacts = List.of("affineFact1", "affineFact2", "affineFact3");
|
||||
private static final String AFFINE_NAME = "affineCipherName";
|
||||
private static final String AFFINE_DESCRIPTION = "affineCipherDescription";
|
||||
private static final List<String> AFFINE_EXPLANATION = List.of("affineExplanation1", "affineExplanation2", "affineExplanation3");
|
||||
private static final List<String> AFFINE_FACTS = List.of("affineFact1", "affineFact2", "affineFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineName", affineName);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineDescription", affineDescription);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineExplanation", affineExplanation);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineFacts", affineFacts);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineName", AFFINE_NAME);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineDescription", AFFINE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineExplanation", AFFINE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(affineCipherController, "affineFacts", AFFINE_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(affineName, affineDescription, affineExplanation, affineFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(AFFINE_NAME, AFFINE_DESCRIPTION, AFFINE_EXPLANATION, AFFINE_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = affineCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = AtbashCipherController.class)
|
||||
@@ -30,19 +28,14 @@ public class AtbashCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private AtbashCipherController atbashCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.AtbashCipherController")
|
||||
//protected Logger atbashLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/atbash";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Nvhhztv gl^vmxlwv";
|
||||
private static final String atbashName = "atbashName";
|
||||
private static final String atbashDescription = "atbashDescription";
|
||||
private static final List<String> atbashExplanation = List.of("atbashExplanation1", "atbashExplanation2", "atbashExplanation3");
|
||||
private static final List<String> atbashFacts = List.of("atbashFact1", "atbashFact2", "atbashFact3");
|
||||
private static final String URL = "/atbash";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Nvhhztv gl^vmxlwv";
|
||||
private static final String ATBASH_NAME = "atbashName";
|
||||
private static final String ATBASH_DESCRIPTION = "atbashDescription";
|
||||
private static final List<String> ATBASH_EXPLANATION = List.of("atbashExplanation1", "atbashExplanation2", "atbashExplanation3");
|
||||
private static final List<String> ATBASH_FACTS = List.of("atbashFact1", "atbashFact2", "atbashFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -51,143 +44,85 @@ public class AtbashCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashName", atbashName);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashDescription", atbashDescription);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashExplanation", atbashExplanation);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashFacts", atbashFacts);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashName", ATBASH_NAME);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashDescription", ATBASH_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashExplanation", ATBASH_EXPLANATION);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashFacts", ATBASH_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(atbashDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(atbashName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(ATBASH_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(ATBASH_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(atbashExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(atbashExplanation.get(0), atbashExplanation.get(1), atbashExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(ATBASH_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(ATBASH_EXPLANATION.get(0), ATBASH_EXPLANATION.get(1), ATBASH_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(atbashFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(atbashFacts.get(0), atbashFacts.get(1), atbashFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(atbashLogger, times(1)).info("Getting info for {}", atbashName);
|
||||
verifyNoMoreInteractions(atbashLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, atbashName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(ATBASH_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(ATBASH_FACTS.get(0), ATBASH_FACTS.get(1), ATBASH_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAtbash() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(atbashLogger, times(1)).info("Encoding {}", atbashName);
|
||||
verifyNoMoreInteractions(atbashLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, atbashName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAtbash_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(atbashLogger, times(1)).info("Encoding {}", atbashName);
|
||||
verifyNoMoreInteractions(atbashLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, atbashName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAtbash() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(atbashLogger, times(1)).info("Decoding {}", atbashName);
|
||||
verifyNoMoreInteractions(atbashLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, atbashName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAtbash_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(atbashLogger, times(1)).info("Decoding {}", atbashName);
|
||||
verifyNoMoreInteractions(atbashLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, atbashName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,24 +31,24 @@ public class AtbashCipherControllerTest{
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String ATBASH_INPUT_STRING = "Message to^encode";
|
||||
private static final String ATBASH_OUTPUT_STRING = "Nvhhztv gl^vmxlwv";
|
||||
private static final String atbashName = "atbashName";
|
||||
private static final String atbashDescription = "atbashDescription";
|
||||
private static final List<String> atbashExplanation = List.of("atbashExplanation1", "atbashExplanation2", "atbashExplanation3");
|
||||
private static final List<String> atbashFacts = List.of("atbashFact1", "atbashFact2", "atbashFact3");
|
||||
private static final String ATBASH_NAME = "atbashName";
|
||||
private static final String ATBASH_DESCRIPTION = "atbashDescription";
|
||||
private static final List<String> ATBASH_EXPLANATION = List.of("atbashExplanation1", "atbashExplanation2", "atbashExplanation3");
|
||||
private static final List<String> ATBASH_FACTS = List.of("atbashFact1", "atbashFact2", "atbashFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashName", atbashName);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashDescription", atbashDescription);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashExplanation", atbashExplanation);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashFacts", atbashFacts);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashName", ATBASH_NAME);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashDescription", ATBASH_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashExplanation", ATBASH_EXPLANATION);
|
||||
ReflectionTestUtils.setField(atbashCipherController, "atbashFacts", ATBASH_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(atbashName, atbashDescription, atbashExplanation, atbashFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(ATBASH_NAME, ATBASH_DESCRIPTION, ATBASH_EXPLANATION, ATBASH_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = atbashCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = AutokeyCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class AutokeyCipherControllerIntegrationTest extends CipherStreamControll
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private AutokeyCipherController autokeyCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.AutokeyCipherController")
|
||||
//protected Logger autokeyLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/autokey";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Wiqooxh fs^wfcuhx";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String autokeyName = "autokeyName";
|
||||
private static final String autokeyDescription = "autokeyDescription";
|
||||
private static final List<String> autokeyExplanation = List.of("autokeyExplanation1", "autokeyExplanation2", "autokeyExplanation3");
|
||||
private static final List<String> autokeyFacts = List.of("autokeyFact1", "autokeyFact2", "autokeyFact3");
|
||||
private static final String URL = "/autokey";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Wiqooxh fs^wfcuhx";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String AUTOKEY_NAME = "autokeyName";
|
||||
private static final String AUTOKEY_DESCRIPTION = "autokeyDescription";
|
||||
private static final List<String> AUTOKEY_EXPLANATION = List.of("autokeyExplanation1", "autokeyExplanation2", "autokeyExplanation3");
|
||||
private static final List<String> AUTOKEY_FACTS = List.of("autokeyFact1", "autokeyFact2", "autokeyFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class AutokeyCipherControllerIntegrationTest extends CipherStreamControll
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyName", autokeyName);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyDescription", autokeyDescription);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyExplanation", autokeyExplanation);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyFacts", autokeyFacts);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyName", AUTOKEY_NAME);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyDescription", AUTOKEY_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyExplanation", AUTOKEY_EXPLANATION);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyFacts", AUTOKEY_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(autokeyDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(autokeyName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(AUTOKEY_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(AUTOKEY_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(autokeyExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(autokeyExplanation.get(0), autokeyExplanation.get(1), autokeyExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(AUTOKEY_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(AUTOKEY_EXPLANATION.get(0), AUTOKEY_EXPLANATION.get(1), AUTOKEY_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(autokeyFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(autokeyFacts.get(0), autokeyFacts.get(1), autokeyFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(autokeyLogger, times(1)).info("Getting info for {}", autokeyName);
|
||||
verifyNoMoreInteractions(autokeyLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, autokeyName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(AUTOKEY_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(AUTOKEY_FACTS.get(0), AUTOKEY_FACTS.get(1), AUTOKEY_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAutokey() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(autokeyLogger, times(1)).info("Encoding {}", autokeyName);
|
||||
verifyNoMoreInteractions(autokeyLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, autokeyName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAutokey_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(autokeyLogger, times(1)).info("Encoding {}", autokeyName);
|
||||
verifyNoMoreInteractions(autokeyLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, autokeyName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAutokey() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(autokeyLogger, times(1)).info("Decoding {}", autokeyName);
|
||||
verifyNoMoreInteractions(autokeyLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, autokeyName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAutokey_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(autokeyLogger, times(1)).info("Decoding {}", autokeyName);
|
||||
verifyNoMoreInteractions(autokeyLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, autokeyName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class AutokeyCipherControllerTest{
|
||||
private static final String AUTOKEY_INPUT_STRING = "Message to^encode";
|
||||
private static final String AUTOKEY_OUTPUT_STRING = "Wiqooxh fs^wfcuhx";
|
||||
private static final String AUTOKEY_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String autokeyName = "autokeyName";
|
||||
private static final String autokeyDescription = "autokeyDescription";
|
||||
private static final List<String> autokeyExplanation = List.of("autokeyExplanation1", "autokeyExplanation2", "autokeyExplanation3");
|
||||
private static final List<String> autokeyFacts = List.of("autokeyFact1", "autokeyFact2", "autokeyFact3");
|
||||
private static final String AUTOKEY_NAME = "autokeyName";
|
||||
private static final String AUTOKEY_DESCRIPTION = "autokeyDescription";
|
||||
private static final List<String> AUTOKEY_EXPLANATION = List.of("autokeyExplanation1", "autokeyExplanation2", "autokeyExplanation3");
|
||||
private static final List<String> AUTOKEY_FACTS = List.of("autokeyFact1", "autokeyFact2", "autokeyFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyName", autokeyName);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyDescription", autokeyDescription);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyExplanation", autokeyExplanation);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyFacts", autokeyFacts);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyName", AUTOKEY_NAME);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyDescription", AUTOKEY_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyExplanation", AUTOKEY_EXPLANATION);
|
||||
ReflectionTestUtils.setField(autokeyCipherController, "autokeyFacts", AUTOKEY_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(autokeyName, autokeyDescription, autokeyExplanation, autokeyFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(AUTOKEY_NAME, AUTOKEY_DESCRIPTION, AUTOKEY_EXPLANATION, AUTOKEY_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = autokeyCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = BaconianCipherController.class)
|
||||
@@ -30,19 +28,14 @@ public class BaconianCipherControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private BaconianCipherController baconianCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.BaconianCipherController")
|
||||
//protected Logger baconianLogger;
|
||||
//Fields
|
||||
private static final String url = "/baconian";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "ABABB aabaa baaab baaab aaaaa aabba aabaa baaba abbab aabaa abbaa aaaba abbab aaabb aabaa";
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String baconianName = "baconianName";
|
||||
private static final String baconianDescription = "baconianDescription";
|
||||
private static final List<String> baconianExplanation = List.of("baconianExplanation1", "baconianExplanation2", "baconianExplanation3");
|
||||
private static final List<String> baconianFacts = List.of("baconianFact1", "baconianFact2", "baconianFact3");
|
||||
private static final String URL = "/baconian";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "ABABB aabaa baaab baaab aaaaa aabba aabaa baaba abbab aabaa abbaa aaaba abbab aaabb aabaa";
|
||||
private static final String BACONIAN_NAME = "baconianName";
|
||||
private static final String BACONIAN_DESCRIPTION = "baconianDescription";
|
||||
private static final List<String> BACONIAN_EXPLANATION = List.of("baconianExplanation1", "baconianExplanation2", "baconianExplanation3");
|
||||
private static final List<String> BACONIAN_FACTS = List.of("baconianFact1", "baconianFact2", "baconianFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -51,143 +44,85 @@ public class BaconianCipherControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString.replaceAll("[^a-zA-Z]", ""));
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING.replaceAll("[^a-zA-Z]", ""));
|
||||
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianName", baconianName);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianDescription", baconianDescription);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianExplanation", baconianExplanation);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianFacts", baconianFacts);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianName", BACONIAN_NAME);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianDescription", BACONIAN_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianExplanation", BACONIAN_EXPLANATION);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianFacts", BACONIAN_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(baconianDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(baconianName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(BACONIAN_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(BACONIAN_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(baconianExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(baconianExplanation.get(0), baconianExplanation.get(1), baconianExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(BACONIAN_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(BACONIAN_EXPLANATION.get(0), BACONIAN_EXPLANATION.get(1), BACONIAN_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(baconianFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(baconianFacts.get(0), baconianFacts.get(1), baconianFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(baconianLogger, times(1)).info("Getting info for {}", baconianName);
|
||||
verifyNoMoreInteractions(baconianLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baconianName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(BACONIAN_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(BACONIAN_FACTS.get(0), BACONIAN_FACTS.get(1), BACONIAN_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBaconian() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(baconianLogger, times(1)).info("Encoding {}", baconianName);
|
||||
verifyNoMoreInteractions(baconianLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baconianName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBaconian_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(baconianLogger, times(1)).info("Encoding {}", baconianName);
|
||||
verifyNoMoreInteractions(baconianLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baconianName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBaconian() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString.replaceAll("[^a-zA-Z]", "")));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(baconianLogger, times(1)).info("Decoding {}", baconianName);
|
||||
verifyNoMoreInteractions(baconianLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baconianName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING.replaceAll("[^a-zA-Z]", "")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBaconian_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(baconianLogger, times(1)).info("Decoding {}", baconianName);
|
||||
verifyNoMoreInteractions(baconianLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baconianName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,28 +28,28 @@ public class BaconianCipherControllerTest{
|
||||
private BaconianCipherController baconianCipherController;
|
||||
//Fields
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String BACONIAN_INPUT_STRING = "Message to-encode";
|
||||
private static final String BACONIAN_OUTPUT_STRING = "ABABB aabaa baaab baaab aaaaa aabba aabaa baaba abbab aabaa abbaa aaaba abbab aaabb aabaa";
|
||||
private static final String BACONIAN_DECODED_STRING = "Messagetoencode";
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String baconianName = "baconianName";
|
||||
private static final String baconianDescription = "baconianDescription";
|
||||
private static final List<String> baconianExplanation = List.of("baconianExplanation1", "baconianExplanation2", "baconianExplanation3");
|
||||
private static final List<String> baconianFacts = List.of("baconianFact1", "baconianFact2", "baconianFact3");
|
||||
private static final String BACONIAN_NAME = "baconianName";
|
||||
private static final String BACONIAN_DESCRIPTION = "baconianDescription";
|
||||
private static final List<String> BACONIAN_EXPLANATION = List.of("baconianExplanation1", "baconianExplanation2", "baconianExplanation3");
|
||||
private static final List<String> BACONIAN_FACTS = List.of("baconianFact1", "baconianFact2", "baconianFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianName", baconianName);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianDescription", baconianDescription);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianExplanation", baconianExplanation);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianFacts", baconianFacts);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianName", BACONIAN_NAME);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianDescription", BACONIAN_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianExplanation", BACONIAN_EXPLANATION);
|
||||
ReflectionTestUtils.setField(baconianCipherController, "baconianFacts", BACONIAN_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(baconianName, baconianDescription, baconianExplanation, baconianFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(BACONIAN_NAME, BACONIAN_DESCRIPTION, BACONIAN_EXPLANATION, BACONIAN_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = baconianCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = BaseXCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class BaseXCipherControllerIntegrationTest extends CipherStreamController
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private BaseXCipherController baseXCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.BaseXCipherController")
|
||||
//protected Logger baseXLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/basex";
|
||||
private static final String decodedString = "A+B@C d\te\nf";
|
||||
private static final String encodedString = "1000001 101011 1000010 1000000 1000011 100000 1100100 1001 1100101 1010 1100110";
|
||||
private static final int base = 2;
|
||||
private static final String baseXName = "baseXName";
|
||||
private static final String baseXDescription = "baseXDescription";
|
||||
private static final List<String> baseXExplanation = List.of("baseXExplanation1", "baseXExplanation2", "baseXExplanation3");
|
||||
private static final List<String> baseXFacts = List.of("baseXFact1", "baseXFact2", "baseXFact3");
|
||||
private static final String URL = "/basex";
|
||||
private static final String DECODED_STRING = "A+B@C d\te\nf";
|
||||
private static final String ENCODED_STRING = "1000001 101011 1000010 1000000 1000011 100000 1100100 1001 1100101 1010 1100110";
|
||||
private static final int BASE = 2;
|
||||
private static final String BASE_X_NAME = "baseXName";
|
||||
private static final String BASE_X_DESCRIPTION = "baseXDescription";
|
||||
private static final List<String> BASE_X_EXPLANATION = List.of("baseXExplanation1", "baseXExplanation2", "baseXExplanation3");
|
||||
private static final List<String> BASE_X_FACTS = List.of("baseXFact1", "baseXFact2", "baseXFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class BaseXCipherControllerIntegrationTest extends CipherStreamController
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.BASE_X_BASE, base);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.BASE_X_BASE, BASE);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.BASE_X_BASE, base);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.BASE_X_BASE, BASE);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXName", baseXName);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXDescription", baseXDescription);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXExplanation", baseXExplanation);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXFacts", baseXFacts);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXName", BASE_X_NAME);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXDescription", BASE_X_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXExplanation", BASE_X_EXPLANATION);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXFacts", BASE_X_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(baseXDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(baseXName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(BASE_X_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(BASE_X_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(baseXExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(baseXExplanation.get(0), baseXExplanation.get(1), baseXExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(BASE_X_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(BASE_X_EXPLANATION.get(0), BASE_X_EXPLANATION.get(1), BASE_X_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(baseXFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(baseXFacts.get(0), baseXFacts.get(1), baseXFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(baseXLogger, times(1)).info("Getting info for {}", baseXName);
|
||||
verifyNoMoreInteractions(baseXLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baseXName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(BASE_X_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(BASE_X_FACTS.get(0), BASE_X_FACTS.get(1), BASE_X_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBaseXEncode() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(baseXLogger, times(1)).info("Encoding {}", baseXName);
|
||||
verifyNoMoreInteractions(baseXLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baseXName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBaseX_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.INPUT_STRING + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(baseXLogger, times(1)).info("Encoding {}", baseXName);
|
||||
verifyNoMoreInteractions(baseXLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baseXName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBaseXDecode() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(baseXLogger, times(1)).info("Decoding {}", baseXName);
|
||||
verifyNoMoreInteractions(baseXLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baseXName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBaseX_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.INPUT_STRING + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(baseXLogger, times(1)).info("Decoding {}", baseXName);
|
||||
verifyNoMoreInteractions(baseXLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, baseXName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class BaseXCipherControllerTest{
|
||||
private static final int BASE_X_BASE = 2;
|
||||
private static final String BASE_X_INPUT_STRING = "A+B@C d\te\nf";
|
||||
private static final String BASE_X_OUTPUT_STRING = "1000001 101011 1000010 1000000 1000011 100000 1100100 1001 1100101 1010 1100110";
|
||||
private static final String baseXName = "baseXName";
|
||||
private static final String baseXDescription = "baseXDescription";
|
||||
private static final List<String> baseXExplanation = List.of("baseXExplanation1", "baseXExplanation2", "baseXExplanation3");
|
||||
private static final List<String> baseXFacts = List.of("baseXFact1", "baseXFact2", "baseXFact3");
|
||||
private static final String BASE_X_NAME = "baseXName";
|
||||
private static final String BASE_X_DESCRIPTION = "baseXDescription";
|
||||
private static final List<String> BASE_X_EXPLANATION = List.of("baseXExplanation1", "baseXExplanation2", "baseXExplanation3");
|
||||
private static final List<String> BASE_X_FACTS = List.of("baseXFact1", "baseXFact2", "baseXFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXName", baseXName);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXDescription", baseXDescription);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXExplanation", baseXExplanation);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXFacts", baseXFacts);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXName", BASE_X_NAME);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXDescription", BASE_X_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXExplanation", BASE_X_EXPLANATION);
|
||||
ReflectionTestUtils.setField(baseXCipherController, "baseXFacts", BASE_X_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(baseXName, baseXDescription, baseXExplanation, baseXFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(BASE_X_NAME, BASE_X_DESCRIPTION, BASE_X_EXPLANATION, BASE_X_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = baseXCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = BeaufortCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class BeaufortCipherControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private BeaufortCipherController beaufortCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.BeaufortCipherController")
|
||||
//protected Logger beaufortLogger;
|
||||
//Fields
|
||||
private static final String url = "/beaufort";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Yageolz rq^ujmdag";
|
||||
private static final String keyword = "Ke*y word";
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String beaufortName = "beaufortName";
|
||||
private static final String beaufortDescription = "beaufortDescription";
|
||||
private static final List<String> beaufortExplanation = List.of("beaufortExplanation1", "beaufortExplanation2", "beaufortExplanation3");
|
||||
private static final List<String> beaufortFacts = List.of("beaufortFact1", "beaufortFact2", "beaufortFact3");
|
||||
private static final String URL = "/beaufort";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Yageolz rq^ujmdag";
|
||||
private static final String KEYWORD = "Ke*y word";
|
||||
private static final String BEAUFORT_NAME = "beaufortName";
|
||||
private static final String BEAUFORT_DESCRIPTION = "beaufortDescription";
|
||||
private static final List<String> BEAUFORT_EXPLANATION = List.of("beaufortExplanation1", "beaufortExplanation2", "beaufortExplanation3");
|
||||
private static final List<String> BEAUFORT_FACTS = List.of("beaufortFact1", "beaufortFact2", "beaufortFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class BeaufortCipherControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortName", beaufortName);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortDescription", beaufortDescription);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortExplanation", beaufortExplanation);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortFacts", beaufortFacts);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortName", BEAUFORT_NAME);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortDescription", BEAUFORT_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortExplanation", BEAUFORT_EXPLANATION);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortFacts", BEAUFORT_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(beaufortDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(beaufortName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(BEAUFORT_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(BEAUFORT_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(beaufortExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(beaufortExplanation.get(0), beaufortExplanation.get(1), beaufortExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(BEAUFORT_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(BEAUFORT_EXPLANATION.get(0), BEAUFORT_EXPLANATION.get(1), BEAUFORT_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(beaufortFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(beaufortFacts.get(0), beaufortFacts.get(1), beaufortFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(beaufortLogger, times(1)).info("Getting info for {}", beaufortName);
|
||||
verifyNoMoreInteractions(beaufortLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, beaufortName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(BEAUFORT_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(BEAUFORT_FACTS.get(0), BEAUFORT_FACTS.get(1), BEAUFORT_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBeaufort() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(beaufortLogger, times(1)).info("Encoding {}", beaufortName);
|
||||
verifyNoMoreInteractions(beaufortLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, beaufortName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(beaufortLogger, times(1)).info("Encoding {}", beaufortName);
|
||||
verifyNoMoreInteractions(beaufortLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, beaufortName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBeaufort() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(beaufortLogger, times(1)).info("Decoding {}", beaufortName);
|
||||
verifyNoMoreInteractions(beaufortLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, beaufortName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(beaufortLogger, times(1)).info("Decoding {}", beaufortName);
|
||||
verifyNoMoreInteractions(beaufortLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, beaufortName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,27 +28,27 @@ public class BeaufortCipherControllerTest{
|
||||
private BeaufortCipherController beaufortCipherController;
|
||||
//Fields
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String BEAUFORT_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String BEAUFORT_INPUT_STRING = "Message to^encode";
|
||||
private static final String BEAUFORT_OUTPUT_STRING = "Yageolz rq^ujmdag";
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String beaufortName = "beaufortName";
|
||||
private static final String beaufortDescription = "beaufortDescription";
|
||||
private static final List<String> beaufortExplanation = List.of("beaufortExplanation1", "beaufortExplanation2", "beaufortExplanation3");
|
||||
private static final List<String> beaufortFacts = List.of("beaufortFact1", "beaufortFact2", "beaufortFact3");
|
||||
private static final String BEAUFORT_NAME = "beaufortName";
|
||||
private static final String BEAUFORT_DESCRIPTION = "beaufortDescription";
|
||||
private static final List<String> BEAUFORT_EXPLANATION = List.of("beaufortExplanation1", "beaufortExplanation2", "beaufortExplanation3");
|
||||
private static final List<String> BEAUFORT_FACTS = List.of("beaufortFact1", "beaufortFact2", "beaufortFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortName", beaufortName);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortDescription", beaufortDescription);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortExplanation", beaufortExplanation);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortFacts", beaufortFacts);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortName", BEAUFORT_NAME);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortDescription", BEAUFORT_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortExplanation", BEAUFORT_EXPLANATION);
|
||||
ReflectionTestUtils.setField(beaufortCipherController, "beaufortFacts", BEAUFORT_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(beaufortName, beaufortDescription, beaufortExplanation, beaufortFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(BEAUFORT_NAME, BEAUFORT_DESCRIPTION, BEAUFORT_EXPLANATION, BEAUFORT_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = beaufortCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = CaesarCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class CaesarCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private CaesarCipherController caesarCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.CaesarCipherController")
|
||||
//protected Logger caesarLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/caesar";
|
||||
private static final String decodedString = "The quick brown fox jumps over - the lazy dog";
|
||||
private static final String encodedString = "Qeb nrfzh yoltk clu grjmp lsbo - qeb ixwv ald";
|
||||
private static final int shiftAmount = 23;
|
||||
private static final String caesarName = "caesarName";
|
||||
private static final String caesarDescription = "caesarDescription";
|
||||
private static final List<String> caesarExplanation = List.of("caesarExplanation1", "caesarExplanation2", "caesarExplanation3");
|
||||
private static final List<String> caesarFacts = List.of("caesarFact1", "caesarFact2", "caesarFact3");
|
||||
private static final String URL = "/caesar";
|
||||
private static final String DECODED_STRING = "The quick brown fox jumps over - the lazy dog";
|
||||
private static final String ENCODED_STRING = "Qeb nrfzh yoltk clu grjmp lsbo - qeb ixwv ald";
|
||||
private static final int SHIFT_AMOUNT = 23;
|
||||
private static final String CAESAR_NAME = "caesarName";
|
||||
private static final String CAESAR_DESCRIPTION = "caesarDescription";
|
||||
private static final List<String> CAESAR_EXPLANATION = List.of("caesarExplanation1", "caesarExplanation2", "caesarExplanation3");
|
||||
private static final List<String> CAESAR_FACTS = List.of("caesarFact1", "caesarFact2", "caesarFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class CaesarCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, shiftAmount);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, SHIFT_AMOUNT);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, shiftAmount);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.CAESAR_SHIFT_AMOUNT, SHIFT_AMOUNT);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarName", caesarName);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarDescription", caesarDescription);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarExplanation", caesarExplanation);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarFacts", caesarFacts);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarName", CAESAR_NAME);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarDescription", CAESAR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarExplanation", CAESAR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarFacts", CAESAR_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(caesarDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(caesarName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(CAESAR_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(CAESAR_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(caesarExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(caesarExplanation.get(0), caesarExplanation.get(1), caesarExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(CAESAR_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(CAESAR_EXPLANATION.get(0), CAESAR_EXPLANATION.get(1), CAESAR_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(caesarFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(caesarFacts.get(0), caesarFacts.get(1), caesarFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(caesarLogger, times(1)).info("Getting info for {}", caesarName);
|
||||
verifyNoMoreInteractions(caesarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(CAESAR_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(CAESAR_FACTS.get(0), CAESAR_FACTS.get(1), CAESAR_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeCaesar() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(caesarLogger, times(1)).info("Encoding {}", caesarName);
|
||||
verifyNoMoreInteractions(caesarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(caesarLogger, times(1)).info("Encoding {}", caesarName);
|
||||
verifyNoMoreInteractions(caesarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeCaesar() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(caesarLogger, times(1)).info("Decoding {}", caesarName);
|
||||
verifyNoMoreInteractions(caesarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(caesarLogger, times(1)).info("Decoding {}", caesarName);
|
||||
verifyNoMoreInteractions(caesarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, caesarName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,27 +28,27 @@ public class CaesarCipherControllerTest{
|
||||
private CaesarCipherController caesarCipherController;
|
||||
//Fields
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String CAESAR_INPUT_STRING = "The quick brown fox jumps over - the lazy dog";
|
||||
private static final String CAESAR_OUTPUT_STRING = "Qeb nrfzh yoltk clu grjmp lsbo - qeb ixwv ald";
|
||||
private static final int CAESAR_SHIFT_AMOUNT = 23;
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String caesarName = "caesarName";
|
||||
private static final String caesarDescription = "caesarDescription";
|
||||
private static final List<String> caesarExplanation = List.of("caesarExplanation1", "caesarExplanation2", "caesarExplanation3");
|
||||
private static final List<String> caesarFacts = List.of("caesarFact1", "caesarFact2", "caesarFact3");
|
||||
private static final String CAESAR_NAME = "caesarName";
|
||||
private static final String CAESAR_DESCRIPTION = "caesarDescription";
|
||||
private static final List<String> CAESAR_EXPLANATION = List.of("caesarExplanation1", "caesarExplanation2", "caesarExplanation3");
|
||||
private static final List<String> CAESAR_FACTS = List.of("caesarFact1", "caesarFact2", "caesarFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarName", caesarName);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarDescription", caesarDescription);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarExplanation", caesarExplanation);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarFacts", caesarFacts);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarName", CAESAR_NAME);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarDescription", CAESAR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarExplanation", CAESAR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(caesarCipherController, "caesarFacts", CAESAR_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(caesarName, caesarDescription, caesarExplanation, caesarFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(CAESAR_NAME, CAESAR_DESCRIPTION, CAESAR_EXPLANATION, CAESAR_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = caesarCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = OneTimePadCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class OneTimePadCipherControllerIntegrationTest extends CipherStreamContr
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private OneTimePadCipherController oneTimePadCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.OneTimePadCipherController")
|
||||
//protected Logger oneTimePadLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/oneTimePad";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Wiqooxh mv^egkgws";
|
||||
private static final String keyword = "keywordThatIsTotallyRandom";
|
||||
private static final String oneTimePadName = "oneTimePadName";
|
||||
private static final String oneTimePadDescription = "oneTimePadDescription";
|
||||
private static final List<String> oneTimePadExplanation = List.of("oneTimePadExplanation1", "oneTimePadExplanation2", "oneTimePadExplanation3");
|
||||
private static final List<String> oneTimePadFacts = List.of("oneTimePadFact1", "oneTimePadFact2", "oneTimePadFact3");
|
||||
private static final String URL = "/oneTimePad";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Wiqooxh mv^egkgws";
|
||||
private static final String KEYWORD = "keywordThatIsTotallyRandom";
|
||||
private static final String ONE_TIME_PAD_NAME = "oneTimePadName";
|
||||
private static final String ONE_TIME_PAD_DESCRIPTION = "oneTimePadDescription";
|
||||
private static final List<String> ONE_TIME_PAD_EXPLANATION = List.of("oneTimePadExplanation1", "oneTimePadExplanation2", "oneTimePadExplanation3");
|
||||
private static final List<String> ONE_TIME_PAD_FACTS = List.of("oneTimePadFact1", "oneTimePadFact2", "oneTimePadFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class OneTimePadCipherControllerIntegrationTest extends CipherStreamContr
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadName", oneTimePadName);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadDescription", oneTimePadDescription);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadExplanation", oneTimePadExplanation);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadFacts", oneTimePadFacts);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadName", ONE_TIME_PAD_NAME);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadDescription", ONE_TIME_PAD_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadExplanation", ONE_TIME_PAD_EXPLANATION);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadFacts", ONE_TIME_PAD_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(oneTimePadDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(oneTimePadName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(ONE_TIME_PAD_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(ONE_TIME_PAD_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(oneTimePadExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(oneTimePadExplanation.get(0), oneTimePadExplanation.get(1), oneTimePadExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(ONE_TIME_PAD_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(ONE_TIME_PAD_EXPLANATION.get(0), ONE_TIME_PAD_EXPLANATION.get(1), ONE_TIME_PAD_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(oneTimePadFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(oneTimePadFacts.get(0), oneTimePadFacts.get(1), oneTimePadFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(oneTimePadLogger, times(1)).info("Getting info for {}", oneTimePadName);
|
||||
verifyNoMoreInteractions(oneTimePadLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, oneTimePadName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(ONE_TIME_PAD_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(ONE_TIME_PAD_FACTS.get(0), ONE_TIME_PAD_FACTS.get(1), ONE_TIME_PAD_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeOneTimePad() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(oneTimePadLogger, times(1)).info("Encoding {}", oneTimePadName);
|
||||
verifyNoMoreInteractions(oneTimePadLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, oneTimePadName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(oneTimePadLogger, times(1)).info("Encoding {}", oneTimePadName);
|
||||
verifyNoMoreInteractions(oneTimePadLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, oneTimePadName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeOneTimePad() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(oneTimePadLogger, times(1)).info("Decoding {}", oneTimePadName);
|
||||
verifyNoMoreInteractions(oneTimePadLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, oneTimePadName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(oneTimePadLogger, times(1)).info("Decoding {}", oneTimePadName);
|
||||
verifyNoMoreInteractions(oneTimePadLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, oneTimePadName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class OneTimePadCipherControllerTest{
|
||||
private static final String ONE_TIME_PAD_KEYWORD = "keywordThatIsTotallyRandom";
|
||||
private static final String ONE_TIME_PAD_INPUT_STRING = "Message to^encode";
|
||||
private static final String ONE_TIME_PAD_OUTPUT_STRING = "Wiqooxh mv^egkgws";
|
||||
private static final String oneTimePadName = "oneTimePadName";
|
||||
private static final String oneTimePadDescription = "oneTimePadDescription";
|
||||
private static final List<String> oneTimePadExplanation = List.of("oneTimePadExplanation1", "oneTimePadExplanation2", "oneTimePadExplanation3");
|
||||
private static final List<String> oneTimePadFacts = List.of("oneTimePadFact1", "oneTimePadFact2", "oneTimePadFact3");
|
||||
private static final String ONE_TIME_PAD_NAME = "oneTimePadName";
|
||||
private static final String ONE_TIME_PAD_DESCRIPTION = "oneTimePadDescription";
|
||||
private static final List<String> ONE_TIME_PAD_EXPLANATION = List.of("oneTimePadExplanation1", "oneTimePadExplanation2", "oneTimePadExplanation3");
|
||||
private static final List<String> ONE_TIME_PAD_FACTS = List.of("oneTimePadFact1", "oneTimePadFact2", "oneTimePadFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadName", oneTimePadName);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadDescription", oneTimePadDescription);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadExplanation", oneTimePadExplanation);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadFacts", oneTimePadFacts);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadName", ONE_TIME_PAD_NAME);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadDescription", ONE_TIME_PAD_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadExplanation", ONE_TIME_PAD_EXPLANATION);
|
||||
ReflectionTestUtils.setField(oneTimePadCipherController, "oneTimePadFacts", ONE_TIME_PAD_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(oneTimePadName, oneTimePadDescription, oneTimePadExplanation, oneTimePadFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(ONE_TIME_PAD_NAME, ONE_TIME_PAD_DESCRIPTION, ONE_TIME_PAD_EXPLANATION, ONE_TIME_PAD_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = oneTimePadCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = PortaCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class PortaCipherControllerIntegrationTest extends CipherStreamController
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private PortaCipherController portaCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.PortaCipherController")
|
||||
//protected Logger portaLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/porta";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Rtghuos bm^qcwgrw";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String portaName = "portaName";
|
||||
private static final String portaDescription = "portaDescription";
|
||||
private static final List<String> portaExplanation = List.of("portaExplanation1", "portaExplanation2", "portaExplanation3");
|
||||
private static final List<String> portaFacts = List.of("portaFact1", "portaFact2", "portaFact3");
|
||||
private static final String URL = "/porta";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Rtghuos bm^qcwgrw";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String PORTA_NAME = "portaName";
|
||||
private static final String PORTA_DESCRIPTION = "portaDescription";
|
||||
private static final List<String> PORTA_EXPLANATION = List.of("portaExplanation1", "portaExplanation2", "portaExplanation3");
|
||||
private static final List<String> PORTA_FACTS = List.of("portaFact1", "portaFact2", "portaFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,153 +45,87 @@ public class PortaCipherControllerIntegrationTest extends CipherStreamController
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaName", portaName);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaDescription", portaDescription);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaExplanation", portaExplanation);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaFacts", portaFacts);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaName", PORTA_NAME);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaDescription", PORTA_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaExplanation", PORTA_EXPLANATION);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaFacts", PORTA_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(portaDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(portaName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(PORTA_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(PORTA_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(portaExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(portaExplanation.get(0), portaExplanation.get(1), portaExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(PORTA_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(PORTA_EXPLANATION.get(0), PORTA_EXPLANATION.get(1), PORTA_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(portaFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(portaFacts.get(0), portaFacts.get(1), portaFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(portaLogger, times(1)).info("Getting info for {}", portaName);
|
||||
verifyNoMoreInteractions(portaLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, portaName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(PORTA_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(PORTA_FACTS.get(0), PORTA_FACTS.get(1), PORTA_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodePorta() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verify(filterLogger, never()).info(eq("Request parameters: {}"), anyString());
|
||||
verify(mdc, times(1)).put("requestId", requestId);
|
||||
verify(mdc, times(1)).put("ip", ipAddress);
|
||||
verify(mdc, times(1)).put("url", url + "/encode");
|
||||
verify(mdc, times(1)).clear();
|
||||
//Controller
|
||||
verify(portaLogger, times(1)).info("Encoding {}", portaName);
|
||||
verifyNoMoreInteractions(portaLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, portaName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(portaLogger, times(1)).info("Encoding {}", portaName);
|
||||
verifyNoMoreInteractions(portaLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, portaName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodePorta() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
verify(filterLogger, never()).info(eq("Request parameters: {}"), anyString());
|
||||
verify(mdc, times(1)).put("requestId", requestId);
|
||||
verify(mdc, times(1)).put("ip", ipAddress);
|
||||
verify(mdc, times(1)).put("url", url + "/decode");
|
||||
verify(mdc, times(1)).clear();
|
||||
//Controller
|
||||
verify(portaLogger, times(1)).info("Decoding {}", portaName);
|
||||
verifyNoMoreInteractions(portaLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, portaName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(portaLogger, times(1)).info("Decoding {}", portaName);
|
||||
verifyNoMoreInteractions(portaLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, portaName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class PortaCipherControllerTest{
|
||||
private static final String PORTA_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String PORTA_INPUT_STRING = "Message to^encode";
|
||||
private static final String PORTA_OUTPUT_STRING = "Rtghuos bm^qcwgrw";
|
||||
private static final String portaName = "portaName";
|
||||
private static final String portaDescription = "portaDescription";
|
||||
private static final List<String> portaExplanation = List.of("portaExplanation1", "portaExplanation2", "portaExplanation3");
|
||||
private static final List<String> portaFacts = List.of("portaFact1", "portaFact2", "portaFact3");
|
||||
private static final String PORTA_NAME = "portaName";
|
||||
private static final String PORTA_DESCRIPTION = "portaDescription";
|
||||
private static final List<String> PORTA_EXPLANATION = List.of("portaExplanation1", "portaExplanation2", "portaExplanation3");
|
||||
private static final List<String> PORTA_FACTS = List.of("portaFact1", "portaFact2", "portaFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaName", portaName);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaDescription", portaDescription);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaExplanation", portaExplanation);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaFacts", portaFacts);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaName", PORTA_NAME);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaDescription", PORTA_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaExplanation", PORTA_EXPLANATION);
|
||||
ReflectionTestUtils.setField(portaCipherController, "portaFacts", PORTA_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(portaName, portaDescription, portaExplanation, portaFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(PORTA_NAME, PORTA_DESCRIPTION, PORTA_EXPLANATION, PORTA_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = portaCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = SubstitutionCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class SubstitutionCipherControllerIntegrationTest extends CipherStreamCon
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private SubstitutionCipherController substitutionCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.SubstitutionCipherController")
|
||||
//protected Logger substitutionLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/substitution";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Oguucig vq^gpeqfg";
|
||||
private static final String keyword = "cdefghijklmnopqrstuvwxyzab";
|
||||
private static final String substitutionName = "substitutionName";
|
||||
private static final String substitutionDescription = "substitutionDescription";
|
||||
private static final List<String> substitutionExplanation = List.of("substitutionExplanation1", "substitutionExplanation2", "substitutionExplanation3");
|
||||
private static final List<String> substitutionFacts = List.of("substitutionFact1", "substitutionFact2", "substitutionFact3");
|
||||
private static final String URL = "/substitution";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Oguucig vq^gpeqfg";
|
||||
private static final String KEYWORD = "cdefghijklmnopqrstuvwxyzab";
|
||||
private static final String SUBSTITUTION_NAME = "substitutionName";
|
||||
private static final String SUBSTITUTION_DESCRIPTION = "substitutionDescription";
|
||||
private static final List<String> SUBSTITUTION_EXPLANATION = List.of("substitutionExplanation1", "substitutionExplanation2", "substitutionExplanation3");
|
||||
private static final List<String> SUBSTITUTION_FACTS = List.of("substitutionFact1", "substitutionFact2", "substitutionFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class SubstitutionCipherControllerIntegrationTest extends CipherStreamCon
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionName", substitutionName);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionDescription", substitutionDescription);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionExplanation", substitutionExplanation);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionFacts", substitutionFacts);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionName", SUBSTITUTION_NAME);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionDescription", SUBSTITUTION_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionExplanation", SUBSTITUTION_EXPLANATION);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionFacts", SUBSTITUTION_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(substitutionDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(substitutionName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(SUBSTITUTION_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(SUBSTITUTION_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(substitutionExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(substitutionExplanation.get(0), substitutionExplanation.get(1), substitutionExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(SUBSTITUTION_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(SUBSTITUTION_EXPLANATION.get(0), SUBSTITUTION_EXPLANATION.get(1), SUBSTITUTION_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(substitutionFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(substitutionFacts.get(0), substitutionFacts.get(1), substitutionFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(substitutionLogger, times(1)).info("Getting info for {}", substitutionName);
|
||||
verifyNoMoreInteractions(substitutionLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, substitutionName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(SUBSTITUTION_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(SUBSTITUTION_FACTS.get(0), SUBSTITUTION_FACTS.get(1), SUBSTITUTION_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeSubstitution() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(substitutionLogger, times(1)).info("Encoding {}", substitutionName);
|
||||
verifyNoMoreInteractions(substitutionLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, substitutionName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(substitutionLogger, times(1)).info("Encoding {}", substitutionName);
|
||||
verifyNoMoreInteractions(substitutionLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, substitutionName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeSubstitution() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(substitutionLogger, times(1)).info("Decoding {}", substitutionName);
|
||||
verifyNoMoreInteractions(substitutionLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, substitutionName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(substitutionLogger, times(1)).info("Decoding {}", substitutionName);
|
||||
verifyNoMoreInteractions(substitutionLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, substitutionName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class SubstitutionCipherControllerTest{
|
||||
private static final String SUBSTITUTION_KEYWORD = "cdefghijklmnopqrstuvwxyzab9876543210";
|
||||
private static final String SUBSTITUTION_INPUT_STRING = "Message to&encode 123";
|
||||
private static final String SUBSTITUTION_OUTPUT_STRING = "Oguucig vq&gpeqfg 876";
|
||||
private static final String substitutionName = "substitutionName";
|
||||
private static final String substitutionDescription = "substitutionDescription";
|
||||
private static final List<String> substitutionExplanation = List.of("substitutionExplanation1", "substitutionExplanation2", "substitutionExplanation3");
|
||||
private static final List<String> substitutionFacts = List.of("substitutionFact1", "substitutionFact2", "substitutionFact3");
|
||||
private static final String SUBSTITUTION_NAME = "substitutionName";
|
||||
private static final String SUBSTITUTION_DESCRIPTION = "substitutionDescription";
|
||||
private static final List<String> SUBSTITUTION_EXPLANATION = List.of("substitutionExplanation1", "substitutionExplanation2", "substitutionExplanation3");
|
||||
private static final List<String> SUBSTITUTION_FACTS = List.of("substitutionFact1", "substitutionFact2", "substitutionFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionName", substitutionName);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionDescription", substitutionDescription);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionExplanation", substitutionExplanation);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionFacts", substitutionFacts);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionName", SUBSTITUTION_NAME);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionDescription", SUBSTITUTION_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionExplanation", SUBSTITUTION_EXPLANATION);
|
||||
ReflectionTestUtils.setField(substitutionCipherController, "substitutionFacts", SUBSTITUTION_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(substitutionName, substitutionDescription, substitutionExplanation, substitutionFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(SUBSTITUTION_NAME, SUBSTITUTION_DESCRIPTION, SUBSTITUTION_EXPLANATION, SUBSTITUTION_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = substitutionCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = VigenereCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class VigenereCipherControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private VigenereCipherController vigenereCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.monosubstitution.VigenereCipherController")
|
||||
//protected Logger vigenereLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/vigenere";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Wiqooxh ds^cjqfgo";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String vigenereName = "vigenereName";
|
||||
private static final String vigenereDescription = "vigenereDescription";
|
||||
private static final List<String> vigenereExplanation = List.of("vigenereExplanation1", "vigenereExplanation2", "vigenereExplanation3");
|
||||
private static final List<String> vigenereFacts = List.of("vigenereFact1", "vigenereFact2", "vigenereFact3");
|
||||
private static final String URL = "/vigenere";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Wiqooxh ds^cjqfgo";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String VIGENERE_NAME = "vigenereName";
|
||||
private static final String VIGENERE_DESCRIPTION = "vigenereDescription";
|
||||
private static final List<String> VIGENERE_EXPLANATION = List.of("vigenereExplanation1", "vigenereExplanation2", "vigenereExplanation3");
|
||||
private static final List<String> VIGENERE_FACTS = List.of("vigenereFact1", "vigenereFact2", "vigenereFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class VigenereCipherControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereName", vigenereName);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereDescription", vigenereDescription);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereExplanation", vigenereExplanation);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereFacts", vigenereFacts);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereName", VIGENERE_NAME);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereDescription", VIGENERE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereExplanation", VIGENERE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereFacts", VIGENERE_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(vigenereDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(vigenereName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(VIGENERE_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(VIGENERE_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(vigenereExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(vigenereExplanation.get(0), vigenereExplanation.get(1), vigenereExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(VIGENERE_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(VIGENERE_EXPLANATION.get(0), VIGENERE_EXPLANATION.get(1), VIGENERE_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(vigenereFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(vigenereFacts.get(0), vigenereFacts.get(1), vigenereFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(vigenereLogger, times(1)).info("Getting info for {}", vigenereName);
|
||||
verifyNoMoreInteractions(vigenereLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, vigenereName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(VIGENERE_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(VIGENERE_FACTS.get(0), VIGENERE_FACTS.get(1), VIGENERE_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeVigenere() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(vigenereLogger, times(1)).info("Encoding {}", vigenereName);
|
||||
verifyNoMoreInteractions(vigenereLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, vigenereName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(vigenereLogger, times(1)).info("Encoding {}", vigenereName);
|
||||
verifyNoMoreInteractions(vigenereLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, vigenereName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeVigenere() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(vigenereLogger, times(1)).info("Decoding {}", vigenereName);
|
||||
verifyNoMoreInteractions(vigenereLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, vigenereName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeAdfgvx_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(vigenereLogger, times(1)).info("Decoding {}", vigenereName);
|
||||
verifyNoMoreInteractions(vigenereLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, vigenereName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class VigenereCipherControllerTest{
|
||||
private static final String VIGENERE_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String VIGENERE_INPUT_STRING = "Message to^encode";
|
||||
private static final String VIGENERE_OUTPUT_STRING = "Wiqooxh ds^cjqfgo";
|
||||
private static final String vigenereName = "vigenereName";
|
||||
private static final String vigenereDescription = "vigenereDescription";
|
||||
private static final List<String> vigenereExplanation = List.of("vigenereExplanation1", "vigenereExplanation2", "vigenereExplanation3");
|
||||
private static final List<String> vigenereFacts = List.of("vigenereFact1", "vigenereFact2", "vigenereFact3");
|
||||
private static final String VIGENERE_NAME = "vigenereName";
|
||||
private static final String VIGENERE_DESCRIPTION = "vigenereDescription";
|
||||
private static final List<String> VIGENERE_EXPLANATION = List.of("vigenereExplanation1", "vigenereExplanation2", "vigenereExplanation3");
|
||||
private static final List<String> VIGENERE_FACTS = List.of("vigenereFact1", "vigenereFact2", "vigenereFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereName", vigenereName);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereDescription", vigenereDescription);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereExplanation", vigenereExplanation);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereFacts", vigenereFacts);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereName", VIGENERE_NAME);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereDescription", VIGENERE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereExplanation", VIGENERE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(vigenereCipherController, "vigenereFacts", VIGENERE_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(vigenereName, vigenereDescription, vigenereExplanation, vigenereFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(VIGENERE_NAME, VIGENERE_DESCRIPTION, VIGENERE_EXPLANATION, VIGENERE_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = vigenereCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = BifidCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class BifidCipherControllerIntegrationTest extends CipherStreamController
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private BifidCipherController bifidCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.BifidCipherController")
|
||||
//protected Logger bifidLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/bifid";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Mqaokne kc^vdodzd";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String bifidName = "bifidName";
|
||||
private static final String bifidDescription = "bifidDescription";
|
||||
private static final List<String> bifidExplanation = List.of("bifidExplanation1", "bifidExplanation2", "bifidExplanation3");
|
||||
private static final List<String> bifidFacts = List.of("bifidFact1", "bifidFact2", "bifidFact3");
|
||||
private static final String URL = "/bifid";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Mqaokne kc^vdodzd";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String BIFID_NAME = "bifidName";
|
||||
private static final String BIFID_DESCRIPTION = "bifidDescription";
|
||||
private static final List<String> BIFID_EXPLANATION = List.of("bifidExplanation1", "bifidExplanation2", "bifidExplanation3");
|
||||
private static final List<String> BIFID_FACTS = List.of("bifidFact1", "bifidFact2", "bifidFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class BifidCipherControllerIntegrationTest extends CipherStreamController
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidName", bifidName);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidDescription", bifidDescription);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidExplanation", bifidExplanation);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidFacts", bifidFacts);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidName", BIFID_NAME);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidDescription", BIFID_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidExplanation", BIFID_EXPLANATION);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidFacts", BIFID_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(bifidName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(bifidDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(BIFID_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(BIFID_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(bifidExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(bifidExplanation.get(0), bifidExplanation.get(1), bifidExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(BIFID_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(BIFID_EXPLANATION.get(0), BIFID_EXPLANATION.get(1), BIFID_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(bifidFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(bifidFacts.get(0), bifidFacts.get(1), bifidFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(bifidLogger, times(1)).info("Getting info for {}", bifidName);
|
||||
verifyNoMoreInteractions(bifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, bifidName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(BIFID_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(BIFID_FACTS.get(0), BIFID_FACTS.get(1), BIFID_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeBifid() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(bifidLogger, times(1)).info("Encoding {}", bifidName);
|
||||
verifyNoMoreInteractions(bifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, bifidName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodebifid_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(bifidLogger, times(1)).info("Encoding {}", bifidName);
|
||||
verifyNoMoreInteractions(bifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, bifidName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeBifid() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(bifidLogger, times(1)).info("Decoding {}", bifidName);
|
||||
verifyNoMoreInteractions(bifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, bifidName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodebifid_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(bifidLogger, times(1)).info("Decoding {}", bifidName);
|
||||
verifyNoMoreInteractions(bifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, bifidName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class BifidCipherControllerTest{
|
||||
private static final String BIFID_INPUT_STRING = "Message to^encode";
|
||||
private static final String BIFID_OUTPUT_STRING = "Mqaokne kc^vdodzd";
|
||||
private static final String BIFID_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String bifidName = "bifidName";
|
||||
private static final String bifidDescription = "bifidDescription";
|
||||
private static final List<String> bifidExplanation = List.of("bifidExplanation1", "bifidExplanation2", "bifidExplanation3");
|
||||
private static final List<String> bifidFacts = List.of("bifidFact1", "bifidFact2", "bifidFact3");
|
||||
private static final String BIFID_NAME = "bifidName";
|
||||
private static final String BIFID_DESCRIPTION = "bifidDescription";
|
||||
private static final List<String> BIFID_EXPLANATION = List.of("bifidExplanation1", "bifidExplanation2", "bifidExplanation3");
|
||||
private static final List<String> BIFID_FACTS = List.of("bifidFact1", "bifidFact2", "bifidFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidName", bifidName);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidDescription", bifidDescription);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidExplanation", bifidExplanation);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidFacts", bifidFacts);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidName", BIFID_NAME);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidDescription", BIFID_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidExplanation", BIFID_EXPLANATION);
|
||||
ReflectionTestUtils.setField(bifidCipherController, "bifidFacts", BIFID_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(bifidName, bifidDescription, bifidExplanation, bifidFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(BIFID_NAME, BIFID_DESCRIPTION, BIFID_EXPLANATION, BIFID_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = bifidCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = ColumnarCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class ColumnarCipherControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private ColumnarCipherController columnarCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.ColumnarCipherController")
|
||||
//protected Logger columnarLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/columnar";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Edeomte ac^gosnse";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String columnarName = "columnarName";
|
||||
private static final String columnarDescription = "columnarDescription";
|
||||
private static final List<String> columnarExplanation = List.of("columnarExplanation1", "columnarExplanation2", "columnarExplanation3");
|
||||
private static final List<String> columnarFacts = List.of("columnarFact1", "columnarFact2", "columnarFact3");
|
||||
private static final String URL = "/columnar";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Edeomte ac^gosnse";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String COLUMNAR_NAME = "columnarName";
|
||||
private static final String COLUMNAR_DESCRIPTION = "columnarDescription";
|
||||
private static final List<String> COLUMNAR_EXPLANATION = List.of("columnarExplanation1", "columnarExplanation2", "columnarExplanation3");
|
||||
private static final List<String> COLUMNAR_FACTS = List.of("columnarFact1", "columnarFact2", "columnarFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class ColumnarCipherControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarName", columnarName);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarDescription", columnarDescription);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarExplanation", columnarExplanation);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarFacts", columnarFacts);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarName", COLUMNAR_NAME);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarDescription", COLUMNAR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarExplanation", COLUMNAR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarFacts", COLUMNAR_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(columnarName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(columnarDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(COLUMNAR_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(COLUMNAR_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(columnarExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(columnarExplanation.get(0), columnarExplanation.get(1), columnarExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(COLUMNAR_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(COLUMNAR_EXPLANATION.get(0), COLUMNAR_EXPLANATION.get(1), COLUMNAR_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(columnarFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(columnarFacts.get(0), columnarFacts.get(1), columnarFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(columnarLogger, times(1)).info("Getting info for {}", columnarName);
|
||||
verifyNoMoreInteractions(columnarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, columnarName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(COLUMNAR_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(COLUMNAR_FACTS.get(0), COLUMNAR_FACTS.get(1), COLUMNAR_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeColumnar() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(columnarLogger, times(1)).info("Encoding {}", columnarName);
|
||||
verifyNoMoreInteractions(columnarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, columnarName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodecolumnar_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(columnarLogger, times(1)).info("Encoding {}", columnarName);
|
||||
verifyNoMoreInteractions(columnarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, columnarName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeColumnar() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(columnarLogger, times(1)).info("Decoding {}", columnarName);
|
||||
verifyNoMoreInteractions(columnarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, columnarName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodecolumnar_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(columnarLogger, times(1)).info("Decoding {}", columnarName);
|
||||
verifyNoMoreInteractions(columnarLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, columnarName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,24 +32,24 @@ public class ColumnarCipherControllerTest{
|
||||
private static final String COLUMNAR_INPUT_STRING = "Message to*encode";
|
||||
private static final String COLUMNAR_OUTPUT_STRING = "Edeomte ac*gosnse";
|
||||
private static final String COLUMNAR_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final String columnarName = "columnarName";
|
||||
private static final String columnarDescription = "columnarDescription";
|
||||
private static final List<String> columnarExplanation = List.of("columnarExplanation1", "columnarExplanation2", "columnarExplanation3");
|
||||
private static final List<String> columnarFacts = List.of("columnarFact1", "columnarFact2", "columnarFact3");
|
||||
private static final String COLUMNAR_NAME = "columnarName";
|
||||
private static final String COLUMNAR_DESCRIPTION = "columnarDescription";
|
||||
private static final List<String> COLUMNAR_EXPLANATION = List.of("columnarExplanation1", "columnarExplanation2", "columnarExplanation3");
|
||||
private static final List<String> COLUMNAR_FACTS = List.of("columnarFact1", "columnarFact2", "columnarFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarName", columnarName);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarDescription", columnarDescription);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarExplanation", columnarExplanation);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarFacts", columnarFacts);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarName", COLUMNAR_NAME);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarDescription", COLUMNAR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarExplanation", COLUMNAR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(columnarCipherController, "columnarFacts", COLUMNAR_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(columnarName, columnarDescription, columnarExplanation, columnarFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(COLUMNAR_NAME, COLUMNAR_DESCRIPTION, COLUMNAR_EXPLANATION, COLUMNAR_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = columnarCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = HillCipherController.class)
|
||||
@@ -30,20 +28,15 @@ public class HillCipherControllerIntegrationTest extends CipherStreamControllerI
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private HillCipherController hillCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.HillCipherController")
|
||||
//protected Logger hillLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/hill";
|
||||
private static final String decodedString = "Message to^encoded";
|
||||
private static final String encodedString = "Mgkeqge ul^ikhisplrd";
|
||||
private static final int[][] keyArray = new int[][]{{1, 4, 2}, {2, 4, 1}, {4, 1, 2}};
|
||||
private static final String hillName = "hillName";
|
||||
private static final String hillDescription = "hillDescription";
|
||||
private static final List<String> hillExplanation = List.of("hillExplanation1", "hillExplanation2", "hillExplanation3");
|
||||
private static final List<String> hillFacts = List.of("hillFact1", "hillFact2", "hillFact3");
|
||||
private static final String URL = "/hill";
|
||||
private static final String DECODED_STRING = "Message to^encoded";
|
||||
private static final String ENCODED_STRING = "Mgkeqge ul^ikhisplrd";
|
||||
private static final int[][] KEY_ARRAY = new int[][]{{1, 4, 2}, {2, 4, 1}, {4, 1, 2}};
|
||||
private static final String HILL_NAME = "hillName";
|
||||
private static final String HILL_DESCRIPTION = "hillDescription";
|
||||
private static final List<String> HILL_EXPLANATION = List.of("hillExplanation1", "hillExplanation2", "hillExplanation3");
|
||||
private static final List<String> HILL_FACTS = List.of("hillFact1", "hillFact2", "hillFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class HillCipherControllerIntegrationTest extends CipherStreamControllerI
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.set(CipherParameterUtil.HILL_KEY, mapper.valueToTree(keyArray));
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.set(CipherParameterUtil.HILL_KEY, mapper.valueToTree(KEY_ARRAY));
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.set(CipherParameterUtil.HILL_KEY, mapper.valueToTree(keyArray));
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString + "xx");
|
||||
encodedNode.set(CipherParameterUtil.HILL_KEY, mapper.valueToTree(KEY_ARRAY));
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING + "xx");
|
||||
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillName", hillName);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillDescription", hillDescription);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillExplanation", hillExplanation);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillFacts", hillFacts);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillName", HILL_NAME);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillDescription", HILL_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillExplanation", HILL_EXPLANATION);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillFacts", HILL_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(hillName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(hillDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(HILL_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(HILL_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(hillExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(hillExplanation.get(0), hillExplanation.get(1), hillExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(HILL_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(HILL_EXPLANATION.get(0), HILL_EXPLANATION.get(1), HILL_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(hillFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(hillFacts.get(0), hillFacts.get(1), hillFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(hillLogger, times(1)).info("Getting info for {}", hillName);
|
||||
verifyNoMoreInteractions(hillLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, hillName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(HILL_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(HILL_FACTS.get(0), HILL_FACTS.get(1), HILL_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeHill() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(hillLogger, times(1)).info("Encoding {}", hillName);
|
||||
verifyNoMoreInteractions(hillLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, hillName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodehill_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(hillLogger, times(1)).info("Encoding {}", hillName);
|
||||
verifyNoMoreInteractions(hillLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, hillName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeHill() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString + "xx"));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(hillLogger, times(1)).info("Decoding {}", hillName);
|
||||
verifyNoMoreInteractions(hillLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, hillName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING + "xx"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodehill_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(hillLogger, times(1)).info("Decoding {}", hillName);
|
||||
verifyNoMoreInteractions(hillLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, hillName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,24 +33,24 @@ public class HillCipherControllerTest{
|
||||
private static final String HILL_INPUT_STRING = "Message to^encode";
|
||||
private static final String HILL_OUTPUT_STRING = "Mgkeqge ul^ikhisp";
|
||||
private static final int[][] KEY = {{1, 4, 2}, {2, 4, 1}, {4, 1, 2}};
|
||||
private static final String hillName = "hillName";
|
||||
private static final String hillDescription = "hillDescription";
|
||||
private static final List<String> hillExplanation = List.of("hillExplanation1", "hillExplanation2", "hillExplanation3");
|
||||
private static final List<String> hillFacts = List.of("hillFact1", "hillFact2", "hillFact3");
|
||||
private static final String HILL_NAME = "hillName";
|
||||
private static final String HILL_DESCRIPTION = "hillDescription";
|
||||
private static final List<String> HILL_EXPLANATION = List.of("hillExplanation1", "hillExplanation2", "hillExplanation3");
|
||||
private static final List<String> HILL_FACTS = List.of("hillFact1", "hillFact2", "hillFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillName", hillName);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillDescription", hillDescription);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillExplanation", hillExplanation);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillFacts", hillFacts);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillName", HILL_NAME);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillDescription", HILL_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillExplanation", HILL_EXPLANATION);
|
||||
ReflectionTestUtils.setField(hillCipherController, "hillFacts", HILL_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(hillName, hillDescription, hillExplanation, hillFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(HILL_NAME, HILL_DESCRIPTION, HILL_EXPLANATION, HILL_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = hillCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = MorseCodeController.class)
|
||||
@@ -30,157 +28,94 @@ public class MorseCodeControllerIntegrationTest extends CipherStreamControllerIn
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private MorseCodeController morseCodeController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.MorseCodeController")
|
||||
//protected Logger morseLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/morse";
|
||||
private static final String decodedString = "Message to^encode123";
|
||||
private static final String encodedString = "-- . ... ... .- --. . - --- . -. -.-. --- -.. . .---- ..--- ...--";
|
||||
private static final String morseName = "morseName";
|
||||
private static final String morseDescription = "morseDescription";
|
||||
private static final List<String> morseExplanation = List.of("morseExplanation1", "morseExplanation2", "morseExplanation3");
|
||||
private static final List<String> morseFacts = List.of("morseFact1", "morseFact2", "morseFact3");
|
||||
private static final String URL = "/morse";
|
||||
private static final String DECODED_STRING = "Message to^encode123";
|
||||
private static final String ENCODED_STRING = "-- . ... ... .- --. . - --- . -. -.-. --- -.. . .---- ..--- ...--";
|
||||
private static final String MORSE_NAME = "morseName";
|
||||
private static final String MORSE_DESCRIPTION = "morseDescription";
|
||||
private static final List<String> MORSE_EXPLANATION = List.of("morseExplanation1", "morseExplanation2", "morseExplanation3");
|
||||
private static final List<String> MORSE_FACTS = List.of("morseFact1", "morseFact2", "morseFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
decodedNode = mapper.createObjectNode();
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString.toUpperCase().replaceAll("[^A-Z0-9]", ""));
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING.toUpperCase().replaceAll("[^A-Z0-9]", ""));
|
||||
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseName", morseName);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseDescription", morseDescription);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseExplanation", morseExplanation);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseFacts", morseFacts);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseName", MORSE_NAME);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseDescription", MORSE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseExplanation", MORSE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseFacts", MORSE_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(morseName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(morseDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(MORSE_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(MORSE_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(morseExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(morseExplanation.get(0), morseExplanation.get(1), morseExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(MORSE_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(MORSE_EXPLANATION.get(0), MORSE_EXPLANATION.get(1), MORSE_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(morseFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(morseFacts.get(0), morseFacts.get(1), morseFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(morseLogger, times(1)).info("Getting info for {}", morseName);
|
||||
verifyNoMoreInteractions(morseLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, morseName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(MORSE_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(MORSE_FACTS.get(0), MORSE_FACTS.get(1), MORSE_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeMorse() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(morseLogger, times(1)).info("Encoding {}", morseName);
|
||||
verifyNoMoreInteractions(morseLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, morseName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodemorse_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.INPUT_STRING + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(morseLogger, times(1)).info("Encoding {}", morseName);
|
||||
verifyNoMoreInteractions(morseLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, morseName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeMorse() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString.toUpperCase().replaceAll("[^A-Z0-9]", "")));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(morseLogger, times(1)).info("Decoding {}", morseName);
|
||||
verifyNoMoreInteractions(morseLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, morseName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING.toUpperCase().replaceAll("[^A-Z0-9]", "")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodemorse_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.INPUT_STRING + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(morseLogger, times(1)).info("Decoding {}", morseName);
|
||||
verifyNoMoreInteractions(morseLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, morseName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,24 +31,24 @@ public class MorseCodeControllerTest{
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String MORSE_INPUT_STRING = "SOS";
|
||||
private static final String MORSE_OUTPUT_STRING = "... --- ...";
|
||||
private static final String morseName = "morseName";
|
||||
private static final String morseDescription = "morseDescription";
|
||||
private static final List<String> morseExplanation = List.of("morseExplanation1", "morseExplanation2", "morseExplanation3");
|
||||
private static final List<String> morseFacts = List.of("morseFact1", "morseFact2", "morseFact3");
|
||||
private static final String MORSE_NAME = "morseName";
|
||||
private static final String MORSE_DESCRIPTION = "morseDescription";
|
||||
private static final List<String> MORSE_EXPLANATION = List.of("morseExplanation1", "morseExplanation2", "morseExplanation3");
|
||||
private static final List<String> MORSE_FACTS = List.of("morseFact1", "morseFact2", "morseFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseName", morseName);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseDescription", morseDescription);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseExplanation", morseExplanation);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseFacts", morseFacts);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseName", MORSE_NAME);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseDescription", MORSE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseExplanation", MORSE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(morseCodeController, "morseFacts", MORSE_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(morseName, morseDescription, morseExplanation, morseFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(MORSE_NAME, MORSE_DESCRIPTION, MORSE_EXPLANATION, MORSE_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = morseCodeController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = PlayfairCipherController.class)
|
||||
@@ -30,21 +28,16 @@ public class PlayfairCipherControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private PlayfairCipherController playfairCipherController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.PlayfairCipherController")
|
||||
//protected Logger playfairLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/playfair";
|
||||
private static final String decodedString = "Hide the gold in - the@tree+stump";
|
||||
private static final String decodedStringPadded = "Hide the gold in - the@trexe+stump";
|
||||
private static final String encodedString = "Bmod zbx dnab ek - udm@uixmm+ouvif";
|
||||
private static final String keyword = "Play-fair@Exam ple";
|
||||
private static final String playfairName = "playfairName";
|
||||
private static final String playfairDescription = "playfairDescription";
|
||||
private static final List<String> playfairExplanation = List.of("playfairExplanation1", "playfairExplanation2", "playfairExplanation3");
|
||||
private static final List<String> playfairFacts = List.of("playfairFact1", "playfairFact2", "playfairFact3");
|
||||
private static final String URL = "/playfair";
|
||||
private static final String DECODED_STRING = "Hide the gold in - the@tree+stump";
|
||||
private static final String DECODED_STRING_PADDED = "Hide the gold in - the@trexe+stump";
|
||||
private static final String ENCODED_STRING = "Bmod zbx dnab ek - udm@uixmm+ouvif";
|
||||
private static final String KEYWORD = "Play-fair@Exam ple";
|
||||
private static final String PLAYFAIR_NAME = "playfairName";
|
||||
private static final String PLAYFAIR_DESCRIPTION = "playfairDescription";
|
||||
private static final List<String> PLAYFAIR_EXPLANATION = List.of("playfairExplanation1", "playfairExplanation2", "playfairExplanation3");
|
||||
private static final List<String> PLAYFAIR_FACTS = List.of("playfairFact1", "playfairFact2", "playfairFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -53,145 +46,87 @@ public class PlayfairCipherControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedStringPadded);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING_PADDED);
|
||||
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairName", playfairName);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairDescription", playfairDescription);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairExplanation", playfairExplanation);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairFacts", playfairFacts);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairName", PLAYFAIR_NAME);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairDescription", PLAYFAIR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairExplanation", PLAYFAIR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairFacts", PLAYFAIR_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(playfairName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(playfairDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(PLAYFAIR_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(PLAYFAIR_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(playfairExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(playfairExplanation.get(0), playfairExplanation.get(1), playfairExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(PLAYFAIR_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(PLAYFAIR_EXPLANATION.get(0), PLAYFAIR_EXPLANATION.get(1), PLAYFAIR_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(playfairFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(playfairFacts.get(0), playfairFacts.get(1), playfairFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(playfairLogger, times(1)).info("Getting info for {}", playfairName);
|
||||
verifyNoMoreInteractions(playfairLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, playfairName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(PLAYFAIR_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(PLAYFAIR_FACTS.get(0), PLAYFAIR_FACTS.get(1), PLAYFAIR_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodePlayfair() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(playfairLogger, times(1)).info("Encoding {}", playfairName);
|
||||
verifyNoMoreInteractions(playfairLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, playfairName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeplayfair_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(playfairLogger, times(1)).info("Encoding {}", playfairName);
|
||||
verifyNoMoreInteractions(playfairLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, playfairName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodePlayfair() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedStringPadded));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(playfairLogger, times(1)).info("Decoding {}", playfairName);
|
||||
verifyNoMoreInteractions(playfairLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, playfairName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING_PADDED));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeplayfair_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(playfairLogger, times(1)).info("Decoding {}", playfairName);
|
||||
verifyNoMoreInteractions(playfairLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, playfairName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,24 +33,24 @@ public class PlayfairCipherControllerTest{
|
||||
private static final String DECODED_INPUT_STRING = "Hide the gold in - the@trexe+stump";
|
||||
private static final String PLAYFAIR_OUTPUT_STRING = "Bmod zbx dnab ek - udm@uixmm+ouvif";
|
||||
private static final String PLAYFAIR_KEYWORD = "Play-fair@Exam ple";
|
||||
private static final String playfairName = "playfairName";
|
||||
private static final String playfairDescription = "playfairDescription";
|
||||
private static final List<String> playfairExplanation = List.of("playfairExplanation1", "playfairExplanation2", "playfairExplanation3");
|
||||
private static final List<String> playfairFacts = List.of("playfairFact1", "playfairFact2", "playfairFact3");
|
||||
private static final String PLAYFAIR_NAME = "playfairName";
|
||||
private static final String PLAYFAIR_DESCRIPTION = "playfairDescription";
|
||||
private static final List<String> PLAYFAIR_EXPLANATION = List.of("playfairExplanation1", "playfairExplanation2", "playfairExplanation3");
|
||||
private static final List<String> PLAYFAIR_FACTS = List.of("playfairFact1", "playfairFact2", "playfairFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairName", playfairName);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairDescription", playfairDescription);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairExplanation", playfairExplanation);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairFacts", playfairFacts);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairName", PLAYFAIR_NAME);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairDescription", PLAYFAIR_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairExplanation", PLAYFAIR_EXPLANATION);
|
||||
ReflectionTestUtils.setField(playfairCipherController, "playfairFacts", PLAYFAIR_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(playfairName, playfairDescription, playfairExplanation, playfairFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(PLAYFAIR_NAME, PLAYFAIR_DESCRIPTION, PLAYFAIR_EXPLANATION, PLAYFAIR_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = playfairCipherController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = PolybiusSquareController.class)
|
||||
@@ -30,20 +28,15 @@ public class PolybiusSquareControllerIntegrationTest extends CipherStreamControl
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private PolybiusSquareController polybiusSquareController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.PolybiusSquareController")
|
||||
//protected Logger polybiusLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/polybius";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "41124545233212 5115^124225152212";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String polybiusName = "polybiusName";
|
||||
private static final String polybiusDescription = "polybiusDescription";
|
||||
private static final List<String> polybiusExplanation = List.of("polybiusExplanation1", "polybiusExplanation2", "polybiusExplanation3");
|
||||
private static final List<String> polybiusFacts = List.of("polybiusFact1", "polybiusFact2", "polybiusFact3");
|
||||
private static final String URL = "/polybius";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "41124545233212 5115^124225152212";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String POLYBIUS_NAME = "polybiusName";
|
||||
private static final String POLYBIUS_DESCRIPTION = "polybiusDescription";
|
||||
private static final List<String> POLYBIUS_EXPLANATION = List.of("polybiusExplanation1", "polybiusExplanation2", "polybiusExplanation3");
|
||||
private static final List<String> POLYBIUS_FACTS = List.of("polybiusFact1", "polybiusFact2", "polybiusFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class PolybiusSquareControllerIntegrationTest extends CipherStreamControl
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString.toUpperCase());
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING.toUpperCase());
|
||||
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusName", polybiusName);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusDescription", polybiusDescription);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusExplanation", polybiusExplanation);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusFacts", polybiusFacts);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusName", POLYBIUS_NAME);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusDescription", POLYBIUS_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusExplanation", POLYBIUS_EXPLANATION);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusFacts", POLYBIUS_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(polybiusName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(polybiusDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(POLYBIUS_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(POLYBIUS_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(polybiusExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(polybiusExplanation.get(0), polybiusExplanation.get(1), polybiusExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(POLYBIUS_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(POLYBIUS_EXPLANATION.get(0), POLYBIUS_EXPLANATION.get(1), POLYBIUS_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(polybiusFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(polybiusFacts.get(0), polybiusFacts.get(1), polybiusFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(polybiusLogger, times(1)).info("Getting info for {}", polybiusName);
|
||||
verifyNoMoreInteractions(polybiusLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, polybiusName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(POLYBIUS_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(POLYBIUS_FACTS.get(0), POLYBIUS_FACTS.get(1), POLYBIUS_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodePolybius() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(polybiusLogger, times(1)).info("Encoding {}", polybiusName);
|
||||
verifyNoMoreInteractions(polybiusLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, polybiusName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodepolybius_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_WHITESPACE + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(polybiusLogger, times(1)).info("Encoding {}", polybiusName);
|
||||
verifyNoMoreInteractions(polybiusLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, polybiusName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodePolybius() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString.toUpperCase()));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(polybiusLogger, times(1)).info("Decoding {}", polybiusName);
|
||||
verifyNoMoreInteractions(polybiusLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, polybiusName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING.toUpperCase()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodepolybius_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_WHITESPACE + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(polybiusLogger, times(1)).info("Decoding {}", polybiusName);
|
||||
verifyNoMoreInteractions(polybiusLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, polybiusName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,23 @@ public class PolybiusSquareControllerTest{
|
||||
private static final String POLYBIUS_INPUT_STRING = "B A-T";
|
||||
private static final String POLYBIUS_OUTPUT_STRING = "15 14-52";
|
||||
private static final String POLYBIUS_KEYWORD = "Z Y+ X-";
|
||||
private static final String polybiusName = "polybiusName";
|
||||
private static final String polybiusDescription = "polybiusDescription";
|
||||
private static final List<String> polybiusExplanation = List.of("PolybiusExplanation1", "PolybiusExplanation2", "PolybiusExplanation3");
|
||||
private static final List<String> polybiusFacts = List.of("PolybiusFact1", "PolybiusFact2", "PolybiusFact3");
|
||||
private static final String POLYBIUS_NAME = "polybiusName";
|
||||
private static final String POLYBIUS_DESCRIPTION = "polybiusDescription";
|
||||
private static final List<String> POLYBIUS_EXPLANATION = List.of("PolybiusExplanation1", "PolybiusExplanation2", "PolybiusExplanation3");
|
||||
private static final List<String> POLYBIUS_FACTS = List.of("PolybiusFact1", "PolybiusFact2", "PolybiusFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusName", polybiusName);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusDescription", polybiusDescription);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusExplanation", polybiusExplanation);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusFacts", polybiusFacts);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusName", POLYBIUS_NAME);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusDescription", POLYBIUS_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusExplanation", POLYBIUS_EXPLANATION);
|
||||
ReflectionTestUtils.setField(polybiusSquareController, "polybiusFacts", POLYBIUS_FACTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(polybiusName, polybiusDescription, polybiusExplanation, polybiusFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(POLYBIUS_NAME, POLYBIUS_DESCRIPTION, POLYBIUS_EXPLANATION, POLYBIUS_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = polybiusSquareController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = RailFenceController.class)
|
||||
@@ -30,20 +28,15 @@ public class RailFenceControllerIntegrationTest extends CipherStreamControllerIn
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private RailFenceController railFenceController;
|
||||
//Loggers
|
||||
//TODO: Fix logger testing
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.RailFenceController")
|
||||
//protected Logger railFenceLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/railFence";
|
||||
private static final String decodedString = "Message to^encode";
|
||||
private static final String encodedString = "Maooesg te^cdsene";
|
||||
private static final int rails = 3;
|
||||
private static final String railFenceName = "railFenceName";
|
||||
private static final String railFenceDescription = "railFenceDescription";
|
||||
private static final List<String> railFenceExplanation = List.of("railFenceExplanation1", "railFenceExplanation2", "railFenceExplanation3");
|
||||
private static final List<String> railFenceFacts = List.of("railFenceFact1", "railFenceFact2", "railFenceFact3");
|
||||
private static final String URL = "/railFence";
|
||||
private static final String DECODED_STRING = "Message to^encode";
|
||||
private static final String ENCODED_STRING = "Maooesg te^cdsene";
|
||||
private static final int RAILS = 3;
|
||||
private static final String RAIL_FENCE_NAME = "railFenceName";
|
||||
private static final String RAIL_FENCE_DESCRIPTION = "railFenceDescription";
|
||||
private static final List<String> RAIL_FENCE_EXPLANATION = List.of("railFenceExplanation1", "railFenceExplanation2", "railFenceExplanation3");
|
||||
private static final List<String> RAIL_FENCE_FACTS = List.of("railFenceFact1", "railFenceFact2", "railFenceFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -52,145 +45,87 @@ public class RailFenceControllerIntegrationTest extends CipherStreamControllerIn
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.RAIL_FENCE_RAILS, rails);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.RAIL_FENCE_RAILS, RAILS);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.RAIL_FENCE_RAILS, rails);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.RAIL_FENCE_RAILS, RAILS);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceName", railFenceName);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceDescription", railFenceDescription);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceExplanation", railFenceExplanation);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceFacts", railFenceFacts);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceName", RAIL_FENCE_NAME);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceDescription", RAIL_FENCE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceExplanation", RAIL_FENCE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceFacts", RAIL_FENCE_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(railFenceName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(railFenceDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(RAIL_FENCE_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(RAIL_FENCE_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(railFenceExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(railFenceExplanation.get(0), railFenceExplanation.get(1), railFenceExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(RAIL_FENCE_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(RAIL_FENCE_EXPLANATION.get(0), RAIL_FENCE_EXPLANATION.get(1), RAIL_FENCE_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(railFenceFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(railFenceFacts.get(0), railFenceFacts.get(1), railFenceFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(railFenceLogger, times(1)).info("Getting info for {}", railFenceName);
|
||||
verifyNoMoreInteractions(railFenceLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, railFenceName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(RAIL_FENCE_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(RAIL_FENCE_FACTS.get(0), RAIL_FENCE_FACTS.get(1), RAIL_FENCE_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeRailFence() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(railFenceLogger, times(1)).info("Encoding {}", railFenceName);
|
||||
verifyNoMoreInteractions(railFenceLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, railFenceName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncoderailFence_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(railFenceLogger, times(1)).info("Encoding {}", railFenceName);
|
||||
verifyNoMoreInteractions(railFenceLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, railFenceName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeRailFence() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(railFenceLogger, times(1)).info("Decoding {}", railFenceName);
|
||||
verifyNoMoreInteractions(railFenceLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, railFenceName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecoderailFence_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(railFenceLogger, times(1)).info("Decoding {}", railFenceName);
|
||||
verifyNoMoreInteractions(railFenceLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, railFenceName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,24 +32,24 @@ public class RailFenceControllerTest{
|
||||
private static final String RAIL_FENCE_INPUT_STRING = "Message to^encode";
|
||||
private static final String RAIL_FENCE_OUTPUT_STRING = "Moetese ne^sgcdao";
|
||||
private static final int RAIL_FENCE_RAILS = 5;
|
||||
private static final String railFenceName = "railFenceName";
|
||||
private static final String railFenceDescription = "railFenceDescription";
|
||||
private static final List<String> railFenceExplanation = List.of("railFenceExplanation1", "railFenceExplanation2", "railFenceExplanation3");
|
||||
private static final List<String> railFenceFacts = List.of("railFenceFact1", "railFenceFact2", "railFenceFact3");
|
||||
private static final String RAIL_FENCE_NAME = "railFenceName";
|
||||
private static final String RAIL_FENCE_DESCRIPTION = "railFenceDescription";
|
||||
private static final List<String> RAIL_FENCE_EXPLANATION = List.of("railFenceExplanation1", "railFenceExplanation2", "railFenceExplanation3");
|
||||
private static final List<String> RAIL_FENCE_FACTS = List.of("railFenceFact1", "railFenceFact2", "railFenceFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceName", railFenceName);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceDescription", railFenceDescription);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceExplanation", railFenceExplanation);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceFacts", railFenceFacts);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceName", RAIL_FENCE_NAME);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceDescription", RAIL_FENCE_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceExplanation", RAIL_FENCE_EXPLANATION);
|
||||
ReflectionTestUtils.setField(railFenceController, "railFenceFacts", RAIL_FENCE_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(railFenceName, railFenceDescription, railFenceExplanation, railFenceFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(RAIL_FENCE_NAME, RAIL_FENCE_DESCRIPTION, RAIL_FENCE_EXPLANATION, RAIL_FENCE_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = railFenceController.getCipherInfo();
|
||||
|
||||
@@ -20,8 +20,6 @@ import com.mattrixwv.cipherstream.controller.CipherStreamControllerIntegrationTe
|
||||
import com.mattrixwv.cipherstream.utils.CipherInfoUtil;
|
||||
import com.mattrixwv.cipherstream.utils.CipherParameterUtil;
|
||||
|
||||
import tools.jackson.databind.node.ObjectNode;
|
||||
|
||||
|
||||
@Tag("integration-test")
|
||||
@WebMvcTest(controllers = TrifidCipherController.class)
|
||||
@@ -30,22 +28,17 @@ public class TrifidCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
private MockMvc mockMvc;
|
||||
@Autowired
|
||||
private TrifidCipherController trifidCipherController;
|
||||
//TODO: Fix logger testing
|
||||
//Loggers
|
||||
//@Mock(name = "com.mattrixwv.cipherstream.controller.polysubstitution.TrifidCipherController")
|
||||
//protected Logger trifidLogger;
|
||||
//Fields
|
||||
private static final ObjectNode blankNode = mapper.createObjectNode();
|
||||
private static final String url = "/trifid";
|
||||
private static final String decodedString = "Message to^encode+";
|
||||
private static final String encodedString = "Gqdokpd od^ljvflf+";
|
||||
private static final String keyword = "keyword";
|
||||
private static final String trifidFill = "=";
|
||||
private static final int grouplength = Integer.MAX_VALUE;
|
||||
private static final String trifidName = "trifidName";
|
||||
private static final String trifidDescription = "trifidDescription";
|
||||
private static final List<String> trifidExplanation = List.of("trifidExplanation1", "trifidExplanation2", "trifidExplanation3");
|
||||
private static final List<String> trifidFacts = List.of("trifidFact1", "trifidFact2", "trifidFact3");
|
||||
private static final String URL = "/trifid";
|
||||
private static final String DECODED_STRING = "Message to^encode+";
|
||||
private static final String ENCODED_STRING = "Gqdokpd od^ljvflf+";
|
||||
private static final String KEYWORD = "keyword";
|
||||
private static final String TRIFID_FILL = "=";
|
||||
private static final int GROUP_LENGTH = Integer.MAX_VALUE;
|
||||
private static final String TRIFID_NAME = "trifidName";
|
||||
private static final String TRIFID_DESCRIPTION = "trifidDescription";
|
||||
private static final List<String> TRIFID_EXPLANATION = List.of("trifidExplanation1", "trifidExplanation2", "trifidExplanation3");
|
||||
private static final List<String> TRIFID_FACTS = List.of("trifidFact1", "trifidFact2", "trifidFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
@@ -54,149 +47,91 @@ public class TrifidCipherControllerIntegrationTest extends CipherStreamControlle
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
decodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
decodedNode.put(CipherParameterUtil.TRIFID_FILL, trifidFill);
|
||||
decodedNode.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, grouplength);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, decodedString);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, encodedString);
|
||||
decodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
decodedNode.put(CipherParameterUtil.TRIFID_FILL, TRIFID_FILL);
|
||||
decodedNode.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, GROUP_LENGTH);
|
||||
decodedNode.put(CipherParameterUtil.INPUT_STRING, DECODED_STRING);
|
||||
decodedNode.put(CipherParameterUtil.OUTPUT_STRING, ENCODED_STRING);
|
||||
|
||||
encodedNode = mapper.createObjectNode();
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_CAPITALS, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_WHITESPACE, true);
|
||||
encodedNode.put(CipherParameterUtil.PRESERVE_SYMBOLS, true);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, keyword);
|
||||
encodedNode.put(CipherParameterUtil.TRIFID_FILL, trifidFill);
|
||||
encodedNode.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, grouplength);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, encodedString);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, decodedString);
|
||||
encodedNode.put(CipherParameterUtil.KEYWORD, KEYWORD);
|
||||
encodedNode.put(CipherParameterUtil.TRIFID_FILL, TRIFID_FILL);
|
||||
encodedNode.put(CipherParameterUtil.TRIFID_GROUP_LENGTH, GROUP_LENGTH);
|
||||
encodedNode.put(CipherParameterUtil.INPUT_STRING, ENCODED_STRING);
|
||||
encodedNode.put(CipherParameterUtil.OUTPUT_STRING, DECODED_STRING);
|
||||
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidName", trifidName);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidDescription", trifidDescription);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidExplanation", trifidExplanation);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidFacts", trifidFacts);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidName", TRIFID_NAME);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidDescription", TRIFID_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidExplanation", TRIFID_EXPLANATION);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidFacts", TRIFID_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetCipherInfo() throws Exception{
|
||||
mockMvc.perform(get(url)
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress))
|
||||
mockMvc.perform(get(URL)
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(trifidName))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(trifidDescription))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_NAME).value(TRIFID_NAME))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_DESCRIPTION).value(TRIFID_DESCRIPTION))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(trifidExplanation.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(trifidExplanation.get(0), trifidExplanation.get(1), trifidExplanation.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasSize(TRIFID_EXPLANATION.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_EXPLANATION, hasItems(TRIFID_EXPLANATION.get(0), TRIFID_EXPLANATION.get(1), TRIFID_EXPLANATION.get(2))))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS).isArray())
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(trifidFacts.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(trifidFacts.get(0), trifidFacts.get(1), trifidFacts.get(2))));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url);
|
||||
//Controller
|
||||
verify(trifidLogger, times(1)).info("Getting info for {}", trifidName);
|
||||
verifyNoMoreInteractions(trifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, trifidName);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasSize(TRIFID_FACTS.size())))
|
||||
.andExpect(jsonPath(CipherInfoUtil.CIPHER_FACTS, hasItems(TRIFID_FACTS.get(0), TRIFID_FACTS.get(1), TRIFID_FACTS.get(2))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodeTrifid() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(decodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(encodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(trifidLogger, times(1)).info("Encoding {}", trifidName);
|
||||
verifyNoMoreInteractions(trifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, trifidName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(decodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(ENCODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodetrifid_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/encode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/encode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/encode");
|
||||
//Controller
|
||||
verify(trifidLogger, times(1)).info("Encoding {}", trifidName);
|
||||
verifyNoMoreInteractions(trifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, trifidName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodeTrifid() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(encodedNode.toString()))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(decodedString));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(trifidLogger, times(1)).info("Decoding {}", trifidName);
|
||||
verifyNoMoreInteractions(trifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, trifidName);
|
||||
//Cipher Aspect
|
||||
verifyAspectLogging(encodedNode);
|
||||
*/
|
||||
.andExpect(jsonPath(CipherParameterUtil.OUTPUT_STRING).value(DECODED_STRING));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecodetrifid_error() throws Exception{
|
||||
mockMvc.perform(post(url + "/decode")
|
||||
.header("X-Request-Id", requestId)
|
||||
.header("X-Forwarded-For", ipAddress)
|
||||
mockMvc.perform(post(URL + "/decode")
|
||||
.header("X-Request-Id", REQUEST_ID)
|
||||
.header("X-Forwarded-For", IP_ADDRESS)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.content(blankNode.toString()))
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("message").value(CipherParameterUtil.PRESERVE_CAPITALS + CipherParameterUtil.PRESENT_MESSAGE));
|
||||
|
||||
//Filter
|
||||
//TODO: Fix logger testing
|
||||
/*
|
||||
super.verifyFilter(url + "/decode");
|
||||
//Controller
|
||||
verify(trifidLogger, times(1)).info("Decoding {}", trifidName);
|
||||
verifyNoMoreInteractions(trifidLogger);
|
||||
verify(mdc, times(1)).put(CipherStreamLoggingAspect.CIPHER_NAME_LOGGING, trifidName);
|
||||
//Cipher Aspect
|
||||
verifyNoInteractions(aspectLogger);
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,24 +34,24 @@ public class TrifidCipherControllerTest{
|
||||
private static final String TRIFID_KEYWORD = CipherParameterUtil.KEYWORD;
|
||||
private static final char TRIFID_FILL_ID = '+';
|
||||
private static final int TRIFID_GROUP_LENGTH = 3;
|
||||
private static final String trifidName = "trifidName";
|
||||
private static final String trifidDescription = "trifidDescription";
|
||||
private static final List<String> trifidExplanation = List.of("trifidExplanation1", "trifidExplanation2", "trifidExplanation3");
|
||||
private static final List<String> trifidFacts = List.of("trifidFact1", "trifidFact2", "trifidFact3");
|
||||
private static final String TRIFID_NAME = "trifidName";
|
||||
private static final String TRIFID_DESCRIPTION = "trifidDescription";
|
||||
private static final List<String> TRIFID_EXPLANATION = List.of("trifidExplanation1", "trifidExplanation2", "trifidExplanation3");
|
||||
private static final List<String> TRIFID_FACTS = List.of("trifidFact1", "trifidFact2", "trifidFact3");
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void setup(){
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidName", trifidName);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidDescription", trifidDescription);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidExplanation", trifidExplanation);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidFacts", trifidFacts);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidName", TRIFID_NAME);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidDescription", TRIFID_DESCRIPTION);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidExplanation", TRIFID_EXPLANATION);
|
||||
ReflectionTestUtils.setField(trifidCipherController, "trifidFacts", TRIFID_FACTS);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void tetGetCipherInfo(){
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(trifidName, trifidDescription, trifidExplanation, trifidFacts);
|
||||
ObjectNode infoNode = CipherInfoUtil.buildInfoNode(TRIFID_NAME, TRIFID_DESCRIPTION, TRIFID_EXPLANATION, TRIFID_FACTS);
|
||||
|
||||
|
||||
ObjectNode returnedJson = trifidCipherController.getCipherInfo();
|
||||
|
||||
Reference in New Issue
Block a user