@Test public void testSetUpdateMode() throws Exception { assertThat(tested.isUpdateMode()).isFalse(); tested.setUpdateMode(true); assertThat(tested.isUpdateMode()).isTrue(); tested.setUpdateMode(false); assertThat(tested.isUpdateMode()).isFalse(); }
/** * {@inheritDoc} */ @Override public String[] getNamesOfModifiedAttributes() { List<String> tmpList = new ArrayList<String>(); NamingEnumeration<? extends Attribute> attributesEnumeration; if (isUpdateMode()) { attributesEnumeration = updatedAttrs.getAll(); } else { attributesEnumeration = originalAttrs.getAll(); } try { while (attributesEnumeration.hasMore()) { Attribute oneAttribute = attributesEnumeration .next(); tmpList.add(oneAttribute.getID()); } } catch (NamingException e) { throw LdapUtils.convertLdapException(e); } finally { closeNamingEnumeration(attributesEnumeration); } return tmpList.toArray(new String[tmpList.size()]); }
/** * {@inheritDoc} */ @Override public String[] getNamesOfModifiedAttributes() { List<String> tmpList = new ArrayList<String>(); NamingEnumeration<? extends Attribute> attributesEnumeration; if (isUpdateMode()) { attributesEnumeration = updatedAttrs.getAll(); } else { attributesEnumeration = originalAttrs.getAll(); } try { while (attributesEnumeration.hasMore()) { Attribute oneAttribute = attributesEnumeration .next(); tmpList.add(oneAttribute.getID()); } } catch (NamingException e) { throw LdapUtils.convertLdapException(e); } finally { closeNamingEnumeration(attributesEnumeration); } return tmpList.toArray(new String[tmpList.size()]); }
/** * {@inheritDoc} */ @Override public String[] getNamesOfModifiedAttributes() { List<String> tmpList = new ArrayList<String>(); NamingEnumeration<? extends Attribute> attributesEnumeration; if (isUpdateMode()) { attributesEnumeration = updatedAttrs.getAll(); } else { attributesEnumeration = originalAttrs.getAll(); } try { while (attributesEnumeration.hasMore()) { Attribute oneAttribute = attributesEnumeration .next(); tmpList.add(oneAttribute.getID()); } } catch (NamingException e) { throw LdapUtils.convertLdapException(e); } finally { closeNamingEnumeration(attributesEnumeration); } return tmpList.toArray(new String[tmpList.size()]); }
@Test public void testSetStringAttribute() throws Exception { assertThat(tested.isUpdateMode()).isFalse(); tested.setAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat((String) attr.get()).isEqualTo("123"); }
@Test public void testSetStringAttributeNull() throws Exception { assertThat(tested.isUpdateMode()).isFalse(); tested.setAttributeValue("abc", null); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat(attr).isNull(); }
@Test public void testModifyNull() throws Exception { tested.setAttributeValue("memberDN", null); tested.setUpdateMode(true); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValue("memberDN", new LdapName("ou=test")); ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(1); }
@Test public void testAddAttribute() throws Exception { tested.setUpdateMode(true); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat(attr).isNull(); ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(1); assertThat(mods[0].getModificationOp()).isEqualTo(DirContext.ADD_ATTRIBUTE); attr = mods[0].getAttribute(); assertThat((String) attr.get()).isEqualTo("123"); String[] modNames = tested.getNamesOfModifiedAttributes(); assertThat(modNames.length).isEqualTo(1); assertThat(modNames[0]).isEqualTo("abc"); tested.update(); mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(0); modNames = tested.getNamesOfModifiedAttributes(); assertThat(modNames.length).isEqualTo(0); attrs = tested.getAttributes(); attr = attrs.get("abc"); assertThat((String) attr.get()).isEqualTo("123"); }
@Test public void testAddMultiAttributes() throws Exception { tested.setUpdateMode(true); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "123", "456" }); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat(attr).isNull(); ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(1); assertThat(mods[0].getModificationOp()).isEqualTo(DirContext.ADD_ATTRIBUTE); attr = mods[0].getAttribute(); assertThat(attr.size()).isEqualTo(2); assertThat((String) attr.get(0)).isEqualTo("123"); assertThat((String) attr.get(1)).isEqualTo("456"); String[] modNames = tested.getNamesOfModifiedAttributes(); assertThat(modNames.length).isEqualTo(1); assertThat(modNames[0]).isEqualTo("abc"); tested.update(); mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(0); modNames = tested.getNamesOfModifiedAttributes(); assertThat(modNames.length).isEqualTo(0); attrs = tested.getAttributes(); attr = attrs.get("abc"); assertThat((String) attr.get(0)).isEqualTo("123"); assertThat((String) attr.get(1)).isEqualTo("456"); }
@Test public void testNoChangeAttribute() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); fixtureAttrs.put(new BasicAttribute("abc", "123")); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValue("abc", "123"); // change ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(0); }
@Test public void testChangeMultiAttributeOrderDoesMatter() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "qwe", "123" }, true); // change ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(1); assertThat(mods[0].getModificationOp()).isEqualTo(DirContext.REPLACE_ATTRIBUTE); Attribute attr = mods[0].getAttribute(); assertThat(attr.get(0)).isEqualTo("qwe"); assertThat(attr.get(1)).isEqualTo("123"); }
@Test public void testChangeMultiAttribute_RemoveValue() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "123" }); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); assertThat(modificationItems[0].getModificationOp()).isEqualTo(DirContext.REMOVE_ATTRIBUTE); assertThat(modificationItems[0].getAttribute().get()).isEqualTo("qwe"); }
assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValue("abc", "234"); // change tested.setAttributeValue("abc", "987");
@Test public void testChangeMultiAttribute_AddValue() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested .setAttributeValues("abc", new String[] { "123", "qwe", "klytt" }); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); assertThat(modificationItems[0].getModificationOp()).isEqualTo(DirContext.ADD_ATTRIBUTE); assertThat(modificationItems[0].getAttribute().get()).isEqualTo("klytt"); }
@Test public void testChangeMultiAttribute_RemoveTwoValues() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); multi.add("rty"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "123" }); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); assertThat(modificationItems[0].getModificationOp()).isEqualTo(DirContext.REMOVE_ATTRIBUTE); assertThat(modificationItems[0].getAttribute().get(0)).isEqualTo("qwe"); assertThat(modificationItems[0].getAttribute().get(1)).isEqualTo("rty"); }
assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValue("abc", null); Attributes attrs = tested.getAttributes();
@Test public void testChangeMultiAttribute_RemoveAllValues() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", null); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); assertThat(modificationItems[0].getModificationOp()).isEqualTo(DirContext.REMOVE_ATTRIBUTE); }
@Test public void testNoChangeMultiAttribute() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "123", "qwe" }); ModificationItem[] mods = tested.getModificationItems(); assertThat(mods.length).isEqualTo(0); String[] modNames = tested.getNamesOfModifiedAttributes(); assertThat(modNames.length).isEqualTo(0); }
@Test public void testAddAttribute_Multivalue() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("def", new String[] { "kalle", "klytt" }); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); assertThat(modificationItems[0].getAttribute().getID()).isEqualTo("def"); }
@Test public void testChangeMultiAttribute_SameValue() throws Exception { final Attributes fixtureAttrs = new BasicAttributes(); Attribute multi = new BasicAttribute("abc"); multi.add("123"); multi.add("qwe"); fixtureAttrs.put(multi); class TestableDirContextAdapter extends DirContextAdapter { public TestableDirContextAdapter() { super(fixtureAttrs, null); setUpdateMode(true); } } tested = new TestableDirContextAdapter(); assertThat(tested.isUpdateMode()).isTrue(); tested.setAttributeValues("abc", new String[] { "123", "qwe" }); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(0); }