Following the dev guide example class: testDevGuideSampleWithEvaluator
from: http://knox.apache.org/books/knox-0-4-0/dev-guide.html#Standard+Providers
outputUri = Expander.expand( template, match.getParams(), evaluator );
is returning a near match with '=null' appended to the end which is
failing my test.
Have been searching for a while but no luck yet. Ideas?
Here is the full test:
@Test
public void testRules () throws IOException, URISyntaxException {
URI inputUri, outputUri;
Matcher<Void> matcher;
Matcher<Void>.Match match;
Template input, pattern, template;
Evaluator evaluator;
WebHCatDeploymentContributor contributor = new
WebHCatDeploymentContributor();
UrlRewriteRulesDescriptor webhcatRules =
contributor.loadRulesFromTemplate();
inputUri = new URI(
"https://knoxHost:8443/gateway/knoxTopo/templeton/v1/?version/hive" );
input = Parser.parse( inputUri.toString() );
pattern = Parser.parse(
webhcatRules.getRule("WEBHCAT/webhcat/root/inbound").template().toString()
);
template = Parser.parse( "{$serviceUrl[WEBHCAT]}/v1/?{**}" );
matcher = new Matcher<Void>();
matcher.add( pattern, null );
match = matcher.match ( input );
evaluator = new Evaluator() {
@Override
public List<String> evaluate( String function,
List<String> parameters ) {
return
Arrays.asList("https://webhcatTestHost.com:50111/templeton");
}
};
outputUri = Expander.expand( template, match.getParams(), evaluator );
assertThat( outputUri.toString(),
equalToIgnoringCase("https://webhcatTestHost.com:50111/templeton/v1/?version/hive"));
}
Assertion failure:
Expected:
equalToIgnoringCase("https://webhcatTestHost.com:50111/templeton/v1/?version/hive")
but: was https://webhcatTestHost.com:50111/templeton/v1/?version/hive=null
--
CONFIDENTIALITY NOTICE
NOTICE: This message is intended for the use of the individual or entity to
which it is addressed and may contain information that is confidential,
privileged and exempt from disclosure under applicable law. If the reader
of this message is not the intended recipient, you are hereby notified that
any printing, copying, dissemination, distribution, disclosure or
forwarding of this communication is strictly prohibited. If you have
received this communication in error, please contact the sender immediately
and delete it from your system. Thank You.