@Test
  public void activeDirectory() {
    Settings settings =
        new Settings()
            .setProperty("ldap.user.baseDn", "cn=users")
            .setProperty("ldap.user.objectClass", "user")
            .setProperty("ldap.user.loginAttribute", "sAMAccountName");

    LdapUserMapping userMapping = new LdapUserMapping(settings);
    LdapSearch search = userMapping.createSearch(null, "tester");
    assertThat(search.getBaseDn(), equalTo("cn=users"));
    assertThat(search.getRequest(), equalTo("(&(objectClass=user)(sAMAccountName={0}))"));
    assertThat(search.getParameters(), equalTo(new String[] {"tester"}));
    assertThat(search.getReturningAttributes(), equalTo(null));

    assertThat(
        userMapping.toString(),
        equalTo(
            "LdapUserMapping{"
                + "baseDn=cn=users,"
                + " objectClass=user,"
                + " loginAttribute=sAMAccountName,"
                + " realNameAttribute=cn,"
                + " emailAttribute=mail}"));
  }
  @Test
  public void defaults() {
    LdapUserMapping userMapping = new LdapUserMapping(new Settings());
    assertThat(userMapping.getBaseDn(), equalTo(null));
    assertThat(userMapping.getObjectClass(), equalTo("inetOrgPerson"));
    assertThat(userMapping.getLoginAttribute(), equalTo("uid"));
    assertThat(userMapping.getRealNameAttribute(), equalTo("cn"));
    assertThat(userMapping.getEmailAttribute(), equalTo("mail"));

    assertThat(
        userMapping.toString(),
        equalTo(
            "LdapUserMapping{"
                + "baseDn=null,"
                + " objectClass=inetOrgPerson,"
                + " loginAttribute=uid,"
                + " realNameAttribute=cn,"
                + " emailAttribute=mail}"));
  }