@Test
public void testDistinguishedName() {

	String testPath = "cn=foo\\,bar,OU=FOO\\,bar , OU=foo\\;bar;OU=foo\\;bar"
			+ " ; ou=foo\\,,ou=foo\\,;ou=foo\\;;ou=foo\\,;ou=bar\\,";
	System.out.println(testPath);
	DistinguishedName path = new DistinguishedName(testPath);
	assertThat(path.getLdapRdn(8).getComponent().getKey()).isEqualTo("cn");
	assertThat(path.getLdapRdn(8).getComponent().getValue()).isEqualTo("foo,bar");
	assertThat(path.getLdapRdn(7).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(7).getComponent().getValue()).isEqualTo("FOO,bar");
	assertThat(path.getLdapRdn(6).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(6).getComponent().getValue()).isEqualTo("foo;bar");
	assertThat(path.getLdapRdn(5).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(5).getComponent().getValue()).isEqualTo("foo;bar");
	assertThat(path.getLdapRdn(4).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(4).getComponent().getValue()).isEqualTo("foo,");
	assertThat(path.getLdapRdn(3).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(3).getComponent().getValue()).isEqualTo("foo,");
	assertThat(path.getLdapRdn(2).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(2).getComponent().getValue()).isEqualTo("foo;");
	assertThat(path.getLdapRdn(1).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(1).getComponent().getValue()).isEqualTo("foo,");
	assertThat(path.getLdapRdn(0).getComponent().getKey()).isEqualTo("ou");
	assertThat(path.getLdapRdn(0).getComponent().getValue()).isEqualTo("bar,");
}