/** * Handle a single attribute. * * @param conn the search was performed on * @param request used to find the search entry * @param attr to handle * * @throws LdapException if the LDAP returns an error */ protected void handleAttribute(final Connection conn, final SearchRequest request, final LdapAttribute attr) throws LdapException { if (attr != null) { attr.setName(handleAttributeName(conn, request, attr.getName())); if (attr.isBinary()) { final Set<byte[]> newValues = attr.getBinaryValues().stream().map( b -> handleAttributeValue(conn, request, b)).collect(Collectors.toSet()); attr.clear(); attr.addBinaryValues(newValues); } else { final Set<String> newValues = attr.getStringValues().stream().map( s -> handleAttributeValue(conn, request, s)).collect(Collectors.toSet()); attr.clear(); attr.addStringValues(newValues); } } }
/** * Handle a single attribute. * * @param conn the search was performed on * @param request used to find the search entry * @param attr to handle * * @throws LdapException if the LDAP returns an error */ protected void handleAttribute(final Connection conn, final SearchRequest request, final LdapAttribute attr) throws LdapException { if (attr != null) { attr.setName(handleAttributeName(conn, request, attr.getName())); if (attr.isBinary()) { final Set<byte[]> newValues = attr.getBinaryValues().stream().map( b -> handleAttributeValue(conn, request, b)).collect(Collectors.toSet()); attr.clear(); attr.addBinaryValues(newValues); } else { final Set<String> newValues = attr.getStringValues().stream().map( s -> handleAttributeValue(conn, request, s)).collect(Collectors.toSet()); attr.clear(); attr.addStringValues(newValues); } } }
/** Tests ordered sort behavior. */ @Test(groups = {"bean"}) public void orderedSortBehavior() { final LdapAttribute la = new LdapAttribute(SortBehavior.ORDERED); AssertJUnit.assertEquals(SortBehavior.ORDERED, la.getSortBehavior()); la.addStringValue("William", "Bill"); final String[] values = la.getStringValues().toArray(new String[2]); AssertJUnit.assertEquals("William", values[0]); AssertJUnit.assertEquals("Bill", values[1]); la.clear(); AssertJUnit.assertEquals(0, la.size()); }
/** Tests sorted sort behavior. */ @Test(groups = {"bean"}) public void sortedSortBehavior() { final LdapAttribute la = new LdapAttribute(SortBehavior.SORTED); AssertJUnit.assertEquals(SortBehavior.SORTED, la.getSortBehavior()); la.addStringValue("William", "Bill"); final String[] values = la.getStringValues().toArray(new String[2]); AssertJUnit.assertEquals("Bill", values[0]); AssertJUnit.assertEquals("William", values[1]); la.clear(); AssertJUnit.assertEquals(0, la.size()); }
/** Tests various binary input. */ @Test(groups = {"bean"}) public void binaryValue() { final LdapAttribute la = new LdapAttribute("jpegPhoto", "image".getBytes()); AssertJUnit.assertTrue(Arrays.equals("image".getBytes(), la.getBinaryValue())); AssertJUnit.assertEquals(1, la.getBinaryValues().size()); AssertJUnit.assertEquals("aW1hZ2U=", la.getStringValue()); AssertJUnit.assertEquals(1, la.getStringValues().size()); AssertJUnit.assertEquals(la, new LdapAttribute("jpegPhoto", "image".getBytes())); try { la.addBinaryValue((byte[][]) null); AssertJUnit.fail("Should have thrown NullPointerException"); } catch (Exception e) { AssertJUnit.assertEquals(NullPointerException.class, e.getClass()); } try { la.addStringValue("Bill"); AssertJUnit.fail("Should have thrown IllegalArgumentException"); } catch (Exception e) { AssertJUnit.assertEquals(IllegalArgumentException.class, e.getClass()); } la.clear(); AssertJUnit.assertEquals(0, la.size()); }
/** Tests create with one value. */ @Test(groups = {"bean"}) public void createOne() { final LdapAttribute la = new LdapAttribute("givenName", "William"); AssertJUnit.assertEquals("William", la.getStringValue()); AssertJUnit.assertEquals(1, la.getStringValues().size()); AssertJUnit.assertEquals("William", la.getStringValues().iterator().next()); AssertJUnit.assertTrue(Arrays.equals("William".getBytes(), la.getBinaryValue())); AssertJUnit.assertEquals(1, la.size()); AssertJUnit.assertEquals(la, new LdapAttribute("givenName", "William")); try { la.addStringValue((String) null); AssertJUnit.fail("Should have thrown IllegalArgumentException"); } catch (Exception e) { AssertJUnit.assertEquals(IllegalArgumentException.class, e.getClass()); } try { la.addBinaryValue("Bill".getBytes()); AssertJUnit.fail("Should have thrown IllegalArgumentException"); } catch (Exception e) { AssertJUnit.assertEquals(IllegalArgumentException.class, e.getClass()); } la.clear(); AssertJUnit.assertEquals(0, la.size()); }
AssertJUnit.assertNotNull(la.getBinaryValues()); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size()); AssertJUnit.assertArrayEquals(jpegPhotos.toArray(new byte[2][0]), la.getBinaryValues().toArray(new byte[2][0])); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size()); AssertJUnit.assertArrayEquals(jpegPhotos.toArray(new byte[2][0]), la.getBinaryValues().toArray(new byte[2][0])); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size());
/** Tests create with two values. */ @Test(groups = {"bean"}) public void createTwo() { final LdapAttribute la = new LdapAttribute("givenName", "Bill", "William"); AssertJUnit.assertEquals(2, la.getStringValues().size()); AssertJUnit.assertEquals(2, la.size()); AssertJUnit.assertEquals(la, new LdapAttribute("givenName", "William", "Bill")); la.removeStringValue("William"); AssertJUnit.assertEquals(1, la.size()); la.clear(); AssertJUnit.assertEquals(0, la.size()); }
AssertJUnit.assertNotNull(la.getBinaryValues()); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size()); la.getBinaryValues().toArray(new byte[2][0])); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size()); la.getBinaryValues().toArray(new byte[2][0])); AssertJUnit.assertEquals(2, la.getBinaryValues().size()); la.clear(); AssertJUnit.assertEquals(0, la.size());
/** Tests various string input. */ @Test(groups = {"bean"}) public void stringValue() { final LdapAttribute la = new LdapAttribute("cn", "William Wallace"); AssertJUnit.assertEquals("William Wallace", la.getStringValue()); AssertJUnit.assertEquals("William Wallace".getBytes(StandardCharsets.UTF_8), la.getBinaryValue()); AssertJUnit.assertEquals(1, la.getStringValues().size()); AssertJUnit.assertEquals(1, la.getBinaryValues().size()); AssertJUnit.assertEquals(la, new LdapAttribute("cn", "William Wallace")); try { la.addStringValue((String[]) null); AssertJUnit.fail("Should have thrown NullPointerException"); } catch (Exception e) { AssertJUnit.assertEquals(NullPointerException.class, e.getClass()); } try { la.addBinaryValue("Bill".getBytes()); AssertJUnit.fail("Should have thrown IllegalArgumentException"); } catch (Exception e) { AssertJUnit.assertEquals(IllegalArgumentException.class, e.getClass()); } la.clear(); AssertJUnit.assertEquals(0, la.size()); }
/** Tests default sort behavior. */ @Test(groups = {"bean"}) public void defaultSortBehavior() { final LdapAttribute la = new LdapAttribute("givenName"); AssertJUnit.assertEquals(SortBehavior.getDefaultSortBehavior(), la.getSortBehavior()); AssertJUnit.assertEquals(0, la.size()); AssertJUnit.assertNull(la.getStringValue()); AssertJUnit.assertNull(la.getBinaryValue()); AssertJUnit.assertEquals("givenName", la.getName()); la.setName("sn"); AssertJUnit.assertEquals("sn", la.getName()); la.clear(); AssertJUnit.assertEquals(0, la.size()); }