use of org.apache.directory.api.ldap.util.tree.DnNode in project directory-ldap-api by apache.
the class TestDnNode method testGetParentElement.
// ---------------------------------------------------------------------------
// Test the getParentElement(DN) method
// ---------------------------------------------------------------------------
@Test
public void testGetParentElement() throws Exception {
DnNode<Dn> dnLookupTree = new DnNode<Dn>();
Dn dn1 = new Dn("dc=directory,dc=apache,dc=org");
Dn dn2 = new Dn("dc=mina,dc=apache,dc=org");
Dn dn3 = new Dn("dc=test,dc=com");
Dn dn4 = new Dn("dc=acme,dc=com");
Dn dn5 = new Dn("dc=acme,c=us,dc=com");
Dn dn6 = new Dn("dc=empty");
Dn org = new Dn("dc=org");
Dn apache = new Dn("dc=apache,dc=org");
Dn test = new Dn("dc=test,dc=directory,dc=apache,dc=org");
dnLookupTree.add(dn1, dn1);
dnLookupTree.add(dn2, dn2);
dnLookupTree.add(dn3, dn3);
dnLookupTree.add(dn4, dn4);
dnLookupTree.add(dn5);
dnLookupTree.add(dn6, dn6);
// Inject some intermediary nodes
dnLookupTree.add(org, org);
assertTrue(dnLookupTree.hasParentElement(apache));
assertEquals(org, dnLookupTree.getParentWithElement(dn1).getElement());
assertEquals(org, dnLookupTree.getParentWithElement(apache).getElement());
assertEquals(dn1, dnLookupTree.getParentWithElement(test).getElement());
assertNull(dnLookupTree.getParentWithElement(org));
}
use of org.apache.directory.api.ldap.util.tree.DnNode in project directory-ldap-api by apache.
the class TestDnNode method testGetNodeDN.
// ---------------------------------------------------------------------------
// Test the getNode(Dn) method
// ---------------------------------------------------------------------------
@Test
public void testGetNodeDN() throws Exception {
DnNode<Dn> tree = new DnNode<Dn>();
Dn dn1 = new Dn("dc=c,dc=b,dc=a");
tree.add(dn1, dn1);
Dn dn2 = new Dn("dc=e,dc=a");
tree.add(dn2, dn2);
assertNull(tree.getNode(Dn.EMPTY_DN));
DnNode<Dn> child = tree.getChild(new Rdn("dc=a"));
assertEquals(child, tree.getNode(new Dn("dc=a")));
child = child.getChild(new Rdn("dc=b"));
assertEquals(child, tree.getNode(new Dn("dc=b,dc=a")));
child = child.getChild(new Rdn("dc=c"));
assertEquals(child, tree.getNode(new Dn("dc=c,dc=b,dc=a")));
assertEquals(child, tree.getNode(new Dn("dc=f,dc=e,dc=c,dc=b,dc=a")));
}
use of org.apache.directory.api.ldap.util.tree.DnNode in project directory-ldap-api by apache.
the class TestDnNode method testHasParentDN.
// ---------------------------------------------------------------------------
// Test the hasParent(Dn) method
// ---------------------------------------------------------------------------
@Test
public void testHasParentDN() throws Exception {
DnNode<Dn> tree = new DnNode<Dn>();
Dn dn1 = new Dn("dc=c,dc=b,dc=a");
tree.add(dn1, dn1);
Dn dn2 = new Dn("dc=e,dc=a");
tree.add(dn2, dn2);
assertFalse(tree.hasParent(Dn.EMPTY_DN));
DnNode<Dn> child = tree.getChild(new Rdn("dc=a"));
assertTrue(tree.hasParent(new Dn("dc=a")));
child = child.getChild(new Rdn("dc=b"));
assertTrue(tree.hasParent(new Dn("dc=b,dc=a")));
child = child.getChild(new Rdn("dc=c"));
assertTrue(tree.hasParent(new Dn("dc=c,dc=b,dc=a")));
assertTrue(tree.hasParent(new Dn("dc=f,dc=e,dc=c,dc=b,dc=a")));
}
use of org.apache.directory.api.ldap.util.tree.DnNode in project directory-ldap-api by apache.
the class TestDnNode method testAdd2OverlappingDNs.
/**
* Test the addition of two overlapping DNs
*/
@Test
public void testAdd2OverlappingDNs() throws LdapException {
DnNode<Dn> tree = new DnNode<Dn>();
Dn dn1 = new Dn("dc=b,dc=a");
Dn dn2 = new Dn("dc=f,dc=a");
tree.add(dn1, dn1);
tree.add(dn2, dn2);
assertNotNull(tree);
Map<String, DnNode<Dn>> children = tree.getChildren();
assertNotNull(children);
assertEquals(1, children.size());
assertNull(tree.getElement());
DnNode<Dn> level1 = children.get(new Rdn("dc=a").getNormName());
DnNode<Dn> level2 = level1.getChildren().get(new Rdn("dc=b").getNormName());
Map<String, DnNode<Dn>> childrenDn1 = level1.getChildren();
assertNotNull(childrenDn1);
assertEquals(2, childrenDn1.size());
assertNull(level1.getElement());
assertNotNull(level2);
assertEquals(dn1, level2.getElement());
level1 = children.get(new Rdn("dc=a").getNormName());
level2 = level1.getChildren().get(new Rdn("dc=f").getNormName());
assertNotNull(level2);
assertEquals(dn2, level2.getElement());
}
use of org.apache.directory.api.ldap.util.tree.DnNode in project directory-ldap-api by apache.
the class TestDnNode method testMoveToSiblingBranch.
@Test
public void testMoveToSiblingBranch() throws Exception {
DnNode<Dn> rootNode = new DnNode<Dn>();
Dn dn1 = new Dn("dc=vysper,dc=mina,dc=directory,dc=apache,dc=org");
Dn dn2 = new Dn("dc=kayyagari,dc=apache,dc=org");
rootNode.add(dn1);
rootNode.add(dn2);
Rdn directoryRdn = new Rdn("dc=directory");
DnNode<Dn> apacheNode = rootNode.getChild(new Rdn("dc=org")).getChild(new Rdn("dc=apache"));
DnNode<Dn> directoryNode = apacheNode.getChild(new Rdn("dc=directory"));
assertNotNull(directoryNode);
assertEquals(apacheNode, directoryNode.getParent());
assertTrue(apacheNode.contains(directoryRdn));
directoryNode.move(dn2);
DnNode<Dn> newParentNode = rootNode.getChild(new Rdn("dc=org")).getChild(new Rdn("dc=apache")).getChild(new Rdn("dc=kayyagari"));
directoryNode = newParentNode.getChild(directoryRdn);
assertNotNull(directoryNode);
assertNull(apacheNode.getChild(directoryRdn));
assertNotNull(newParentNode.getChild(directoryRdn));
assertFalse(apacheNode.contains(directoryRdn));
assertTrue(newParentNode.contains(directoryRdn));
assertEquals(new Dn("dc=directory,dc=kayyagari,dc=apache,dc=org"), directoryNode.getDn());
assertEquals(new Dn("dc=mina,dc=directory,dc=kayyagari,dc=apache,dc=org"), directoryNode.getChild(new Rdn("dc=mina")).getDn());
assertEquals(new Dn("dc=vysper,dc=mina,dc=directory,dc=kayyagari,dc=apache,dc=org"), directoryNode.getChild(new Rdn("dc=mina")).getChild(new Rdn("dc=vysper")).getDn());
}