assertThat( config.getRules().isEmpty(), is( true ) );
reader = new StringReader( "<rules><rule></rule></rules>" );
config = digester.parse( reader );
assertThat( config.getRules().size(), is( 1 ) );
UrlRewriteRuleDescriptor rule = config.getRules().get( 0 );
assertThat( rule, notNullValue() );
assertThat( rule.name(), nullValue() );
assertThat( rule.pattern(), nullValue() );
assertThat( rule.directions(), nullValue() );
assertThat( rule.flow(), nullValue() );
reader = new StringReader( "<rules><rule name=\"test-name\"></rule></rules>" );
config = digester.parse( reader );
assertThat( config.getRules().size(), is( 1 ) );
rule = config.getRules().get( 0 );
assertThat( rule, notNullValue() );
assertThat( rule.name(), is( "test-name" ) );
assertThat( rule.pattern(), nullValue() );
assertThat( rule.directions(), nullValue() );
assertThat( rule.flow(), nullValue() );
reader = new StringReader( "<rules><rule pattern=\"test-pattern\"></rule></rules>" );
config = digester.parse( reader );
assertThat( config.getRules().size(), is( 1 ) );
rule = config.getRules().get( 0 );
assertThat( rule, notNullValue() );
assertThat( rule.name(), nullValue() );
assertThat( rule.pattern(), is( "test-pattern" ) );
assertThat( rule.directions(), nullValue() );
assertThat( rule.flow(), nullValue() );
reader = new StringReader( "<rules><rule dir=\"request\"></rule></rules>" );
config = digester.parse( reader );
assertThat( config.getRules().size(), is( 1 ) );
rule = config.getRules().get( 0 );
assertThat( rule, notNullValue() );
assertThat( rule.name(), nullValue() );
assertThat( rule.pattern(), nullValue() );
assertThat( rule.directions().size(), is( 1 ) );
assertThat( rule.directions(), contains( UrlRewriter.Direction.IN ) );
assertThat( rule.flow(), nullValue() );
reader = new StringReader( "<rules><rule flow=\"all\"></rule></rules>" );
config = digester.parse( reader );
assertThat( config.getRules().size(), is( 1 ) );
rule = config.getRules().get( 0 );
assertThat( rule, notNullValue() );
assertThat( rule.name(), nullValue() );
assertThat( rule.pattern(), nullValue() );
assertThat( rule.directions(), nullValue() );
assertThat( rule.flow(), Matchers.is( UrlRewriteStepFlow.ALL ) );
}