private ParameterList parseTemplateFormatterParameters(final NodeList params) { ParameterList parameterList = new ParameterList(); if (params != null) { for (int i = 0; i < params.getLength(); i++) { Element el = (Element) params.item(i); String name = el.getAttribute("name"); String value = el.getAttribute("value"); parameterList.addParameter(new Parameter(name, value)); } } return parameterList; }
@Test public void testFormatTemplateWhenMultipleParametersShouldReplaceString() throws Exception { //GIVEN templateResource = "123 this is a test template 123".getBytes(); parameterList.addParameter(new Parameter("[0-2]+", "HELLO")); parameterList.addParameter(new Parameter("is", "is not")); //WHEN byte[] actual = underTest.formatResponse(request, response, templateResource, parameterList); //THEN assertEquals(actual, "HELLO3 this not is not a test template HELLO3".getBytes()); }
@Test(expectedExceptions = ConditionEvaluationFailedException.class) public void testCheckConditionWhenParameterHasMultipleEntriesShouldThrowException() { //GIVEN parameterList.addParameter(new Parameter(ELEMENT, "178")); parameterList.addParameter(new Parameter("ns1:OTHERID", "3001")); //WHEN underTest.checkCondition(request, parameterList); //THEN exception should be thrown }
@Test(expectedExceptions = ConditionEvaluationFailedException.class) public void testCheckConditionWhenParameterSizeIsTwoShouldThrowException() { //GIVEN parameterList.addParameter(new Parameter("xquery", QUERY)); parameterList.addParameter(new Parameter("xquery1", QUERY)); //WHEN underTest.checkCondition(request, parameterList); //THEN exception should be thrown }
private void givenExpectations(String schemaFile, String logValidationFailure) { parameters = new ParameterList(); parameters.addParameter(new Parameter(SCHEMA, schemaFile)); parameters.addParameter(new Parameter(LOG_IF_VALIDATION_FAILED, logValidationFailure)); }
private void givenExpectations(String expected, String path) { parameters = new ParameterList(); parameters.addParameter(new Parameter(EXPECTED_KEY, expected)); parameters.addParameter(new Parameter(JSONPATH_KEY, path)); }
@Test public void testValidateWhenXQueryIsSyntacticallyCorrectShouldPass() { //GIVEN parameterList.addParameter(new Parameter("check", "valid xquery")); doReturn(CUSTOM_BODY_CHECKER).when(underTest).getSimpleName(conditionChecker); //WHEN underTest.validate(conditionChecker, parameterList); //THEN it should not throw exception }
@Test public void testCheckConditionShouldReturnTrueWhenParameterListContainsMoreElement() { //GIVEN paramList.addParameter(new Parameter("key1", "aba")); paramList.addParameter(new Parameter("key2", "ba")); paramList.addParameter(new Parameter("key3", "a")); given(request.getRequestLine()).willReturn("aba"); //WHEN boolean result = underTest.checkCondition(request, paramList); //THEN Assert.assertTrue(result); }
@Test public void testCheckConditionShouldReturnFalseWhenParameterListContainsMoreElementButFirstIsWrong() { //GIVEN paramList.addParameter(new Parameter("key1", "aba")); paramList.addParameter(new Parameter("key2", "ba")); paramList.addParameter(new Parameter("key3", "a")); given(request.getRequestLine()).willReturn("cba"); //WHEN boolean result = underTest.checkCondition(request, paramList); //THEN assertFalse(result); }
@Test public void testCheckConditionWhenOneConditionIsFulfilledShouldReturnFalse() { //GIVEN String otherValue = "other value"; parameterList.addParameter(new Parameter(PARAMETER_NAME, MSG_ID)); parameterList.addParameter(new Parameter("OTHER_VALUE", otherValue)); given(request.getBody()).willReturn(MSG_ID, ""); //WHEN boolean actual = underTest.checkCondition(request, parameterList); //THEN assertEquals(actual, false); }
@Test public void testCheckConditionWhenNoConditionIsFulfilledShouldReturnFalse() { //GIVEN String otherValue = "other value"; parameterList.addParameter(new Parameter(PARAMETER_NAME, MSG_ID)); parameterList.addParameter(new Parameter("OTHER_VALUE", otherValue)); given(request.getBody()).willReturn("something else", "something else"); //WHEN boolean actual = underTest.checkCondition(request, parameterList); //THEN assertEquals(actual, false); }
@Test public void testResolveShouldNotResolveWithoutInvalidRegexSyntax() throws Exception { //GIVEN givenRequestWithUrl("www.typeless.com/urls/resolvable.html"); parameters = new ParameterList(); parameters.addParameter(new Parameter("type:InvalidPattern", "url:[")); //WHEN String resolvedType = underTest.resolve(request, parameters); //THEN assertEquals(resolvedType, ""); }
@Test(expectedExceptions = DescriptorValidationFailedException.class) public void testValidateWhenXQueryIsSyntacticallyIncorrectShouldThrowException() { //GIVEN parameterList.addParameter(new Parameter("check", "invalid xquery")); doReturn(CUSTOM_BODY_CHECKER).when(underTest).getSimpleName(conditionChecker); willThrow(new ConditionEvaluationFailedException("exception")).given(conditionChecker).checkCondition(Mockito.any(WilmaHttpRequest.class), Mockito.eq(parameterList)); //WHEN underTest.validate(conditionChecker, parameterList); //THEN it should throw exception }
@Test public void testCheckConditionShouldReturnFalseWhenParameterListContainsOneWrongElement() { //GIVEN paramList.addParameter(new Parameter("key1", "aba")); given(request.getRequestLine()).willReturn("cba"); //WHEN boolean result = underTest.checkCondition(request, paramList); //THEN assertFalse(result); }
@Test public void testCheckConditionShouldReturnTrueWhenParameterListContainsOneElement() { //GIVEN paramList.addParameter(new Parameter("key1", "aba")); given(request.getRequestLine()).willReturn("aba"); //WHEN boolean result = underTest.checkCondition(request, paramList); //THEN Assert.assertTrue(result); }
@Test public void testCheckConditionWhenConditionIsFulfilledShouldReturnTrue() { //GIVEN parameterList.addParameter(new Parameter(PARAMETER_NAME, MSG_ID)); given(request.getBody()).willReturn(MSG_ID); given(operator.checkTarget(anyString(), anyString())).willReturn(true); //WHEN boolean actual = underTest.checkCondition(request, parameterList); //THEN assertEquals(actual, true); }
@Test public void testCheckConditionWhenMultipleConditionsAreFulfilledShouldReturnTrue() { //GIVEN parameterList.addParameter(new Parameter(CONTENT_TYPE_HEADER, XML_CONTENT)); parameterList.addParameter(new Parameter(CONTENT_ENCODING_HEADER, GZIP_CONTENT)); given(request.getHeader(CONTENT_TYPE_HEADER)).willReturn(XML_CONTENT); given(request.getHeader(CONTENT_ENCODING_HEADER)).willReturn(GZIP_CONTENT); //WHEN boolean actual = underTest.checkCondition(request, parameterList); //THEN assertEquals(actual, true); }
@Test(expectedExceptions = ConditionEvaluationFailedException.class) public void testCheckConditionShouldThrowExceptionWhenXQueryEvaulationFailed() throws SaxonApiException { //GIVEN given(request.getHeader(CONTENT_TYPE_HEADER)).willReturn(HEADER_VAL_XML); parameterList.addParameter(new Parameter(TEXT_PLAIN, HEADER_VAL_XML)); given(xQueryEvaluator.evaluateXQuery(anyString(), anyString())).willThrow(new SaxonApiException("")); //WHEN underTest.checkCondition(request, parameterList); //TNEN exception is thrown }
@Test public void testCheckConditionWhenRequestIsNotXmlShouldReturnFalse() { //GIVEN parameterList.addParameter(new Parameter(NODE, VALUE)); given(request.getBody()).willReturn(REQUEST); given(request.getHeader(CONTENT_TYPE_HEADER)).willReturn("text/plain"); //WHEN boolean actual = underTest.checkCondition(request, parameterList); //THEN assertEquals(actual, false); }
@Test(expectedExceptions = ConditionEvaluationFailedException.class) public void testCheckConditionWhenSyntaxExceptionShouldThrowException() throws SaxonApiException { //GIVEN parameterList.addParameter(new Parameter("xquery", QUERY)); given(request.getHeader(CONTENT_TYPE_HEADER)).willReturn(FASTINFOSET_CONTENT); given(request.getBody()).willReturn(BODY); given(queryExpressionEvaluator.evaluateXQuery(BODY, QUERY)).willThrow(new SaxonApiException("exception")); //WHEN underTest.checkCondition(request, parameterList); //THEN exception should be thrown } }