*/
@Test
public void testFull() throws ParseException
{
String value = null;
DITStructureRule ditStructureRule = null;
value = "( 1234567890 NAME ( 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789' 'test' ) DESC 'Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577' OBSOLETE FORM 2.3.4.5.6.7.8.9.0.1 SUP ( 1 1234567890 5 ) X-TEST-a ('test1-1' 'test1-2') X-TEST-b ('test2-1' 'test2-2') )";
ditStructureRule = parser.parseDITStructureRuleDescription( value );
assertEquals( 1234567890, ditStructureRule.getRuleId() );
assertEquals( 2, ditStructureRule.getNames().size() );
assertEquals( "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", ditStructureRule.getNames()
.get( 0 ) );
assertEquals( "test", ditStructureRule.getNames().get( 1 ) );
assertEquals( "Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577", ditStructureRule.getDescription() );
assertTrue( ditStructureRule.isObsolete() );
assertEquals( "2.3.4.5.6.7.8.9.0.1", ditStructureRule.getForm() );
assertEquals( 3, ditStructureRule.getSuperRules().size() );
assertEquals( Integer.valueOf( 1 ), ditStructureRule.getSuperRules().get( 0 ) );
assertEquals( Integer.valueOf( 1234567890 ), ditStructureRule.getSuperRules().get( 1 ) );
assertEquals( Integer.valueOf( 5 ), ditStructureRule.getSuperRules().get( 2 ) );
assertEquals( 2, ditStructureRule.getExtensions().size() );
assertNotNull( ditStructureRule.getExtensions().get( "X-TEST-a" ) );
assertEquals( 2, ditStructureRule.getExtensions().get( "X-TEST-a" ).size() );
assertEquals( "test1-1", ditStructureRule.getExtensions().get( "X-TEST-a" ).get( 0 ) );
assertEquals( "test1-2", ditStructureRule.getExtensions().get( "X-TEST-a" ).get( 1 ) );
assertNotNull( ditStructureRule.getExtensions().get( "X-TEST-b" ) );
assertEquals( 2, ditStructureRule.getExtensions().get( "X-TEST-b" ).size() );
assertEquals( "test2-1", ditStructureRule.getExtensions().get( "X-TEST-b" ).get( 0 ) );
assertEquals( "test2-2", ditStructureRule.getExtensions().get( "X-TEST-b" ).get( 1 ) );
}