*/
@Test
public void testFull() throws ParseException, LdapException
{
String value = null;
NameForm nf = null;
value = "( 1.2.3.4.5.6.7.8.9.0 NAME ( 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789' 'test' ) DESC 'Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577' OBSOLETE OC bcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789a MUST ( 3.4.5.6.7.8.9.0.1.2 $ cdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789ab ) MAY ( 4.5.6.7.8.9.0.1.2.3 $ defghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789abc ) X-TEST-a ('test1-1' 'test1-2') X-TEST-b ('test2-1' 'test2-2') )";
nf = parser.parseNameFormDescription( value );
assertEquals( "1.2.3.4.5.6.7.8.9.0", nf.getOid() );
assertEquals( 2, nf.getNames().size() );
assertEquals( "abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", nf.getNames().get( 0 ) );
assertEquals( "test", nf.getNames().get( 1 ) );
assertEquals( "Descripton \u00E4\u00F6\u00FC\u00DF \u90E8\u9577", nf.getDescription() );
assertTrue( nf.isObsolete() );
assertEquals( "bcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789a", nf
.getStructuralObjectClassOid() );
assertEquals( 2, nf.getMustAttributeTypeOids().size() );
assertEquals( "3.4.5.6.7.8.9.0.1.2", nf.getMustAttributeTypeOids().get( 0 ) );
assertEquals( "cdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789ab", nf.getMustAttributeTypeOids()
.get( 1 ) );
assertEquals( 2, nf.getMayAttributeTypeOids().size() );
assertEquals( "4.5.6.7.8.9.0.1.2.3", nf.getMayAttributeTypeOids().get( 0 ) );
assertEquals( "defghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789abc", nf.getMayAttributeTypeOids()
.get( 1 ) );
assertEquals( 2, nf.getExtensions().size() );
assertNotNull( nf.getExtensions().get( "X-TEST-a" ) );
assertEquals( 2, nf.getExtensions().get( "X-TEST-a" ).size() );
assertEquals( "test1-1", nf.getExtensions().get( "X-TEST-a" ).get( 0 ) );
assertEquals( "test1-2", nf.getExtensions().get( "X-TEST-a" ).get( 1 ) );
assertNotNull( nf.getExtensions().get( "X-TEST-b" ) );
assertEquals( 2, nf.getExtensions().get( "X-TEST-b" ).size() );
assertEquals( "test2-1", nf.getExtensions().get( "X-TEST-b" ).get( 0 ) );
assertEquals( "test2-2", nf.getExtensions().get( "X-TEST-b" ).get( 1 ) );
}