rewrite.template( "{*}://test-static-host:{*}/{qp1}/{qp2}/{**}?server={$hostmap(host)}&{**}" );
UrlRewriteProcessor rewriter = new UrlRewriteProcessor();
rewriter.initialize( environment, descriptor );
Template input = Parser.parse(
"test-scheme://test-external-host:42/test-path/test-file?qp1=qp1-val&qp2=qp2-val&test-name-1=test-value-1&test-name-2=test-value-2" );
Template output = rewriter.rewrite( resolver, input, UrlRewriter.Direction.OUT, "test-rule" );
//System.out.println( output );
assertThat( output, notNullValue() );
assertThat( output.getHost().getFirstValue().getPattern(), is( "test-static-host" ) );
assertThat( output.getQuery().get( "server" ).getFirstValue().getPattern(), is( "test-external-host" ) );
assertThat( output.getQuery().get( "server" ).getValues().size(), is( 1 ) );
assertThat( output.getQuery().get( "test-name-1" ).getFirstValue().getPattern(), is( "test-value-1" ) );
assertThat( output.getQuery().get( "test-name-1" ).getValues().size(), is( 1 ) );
assertThat( output.getQuery().get( "test-name-2" ).getFirstValue().getPattern(), is( "test-value-2" ) );
assertThat( output.getQuery().get( "test-name-2" ).getValues().size(), is( 1 ) );
assertThat( output.getQuery().size(), is( 3 ) );
}