class FakeLdapFacade extends AbstractLdapProvider {

    @Override
    public LdapSearchResult<Map<String, Set<String>>> lookupLdapContent(String dn, String filter, String[] values) {<FILL_FUNCTION_BODY>}

    @Override
    public boolean isConfigured() {
        return true;
    }

    @Override
    public void close() {
        // No need to close anything as this is fake plugin.
    }
}

        Map<String, Set<String>> map = new TreeMap<>();

        filter = filter == null ? "objectclass=*" : filter;
        values = values == null ? new String[]{"dn", "ou"} : values;

        if ("objectclass=*".equals(filter)) {
            List<String> v = Arrays.asList(values);
            if (v.isEmpty()) {
                map.put("mail", new TreeSet<>(List.of("james@bond.com")));
                map.put("ou", new TreeSet<>(List.of("MI6")));
            } else {
                for (String x : v) {
                    if (x.equals("uid")) {
                        map.put("uid", new TreeSet<>(List.of("bondjame")));
                    }
                }
            }
            return new LdapSearchResult<>("fakedn", map);
        }

        if (filter.contains("objectclass")) {
            map.put("dn", new TreeSet<>(Arrays.asList("cn=mi6,cn=mi6,cn=james,dc=bond,dc=com",
                    "cn=mi7,cn=mi7,cn=james,dc=bond,dc=com")));
        }

        return new LdapSearchResult<>("fakedn", map);
    
<methods>public non-sealed void <init>() ,public abstract void close() ,public abstract boolean isConfigured() ,public LdapSearchResult<Map<java.lang.String,Set<java.lang.String>>> lookupLdapContent(java.lang.String) throws opengrok.auth.plugin.ldap.LdapException,public LdapSearchResult<Map<java.lang.String,Set<java.lang.String>>> lookupLdapContent(java.lang.String, java.lang.String) throws opengrok.auth.plugin.ldap.LdapException,public LdapSearchResult<Map<java.lang.String,Set<java.lang.String>>> lookupLdapContent(java.lang.String, java.lang.String[]) throws opengrok.auth.plugin.ldap.LdapException,public abstract LdapSearchResult<Map<java.lang.String,Set<java.lang.String>>> lookupLdapContent(java.lang.String, java.lang.String, java.lang.String[]) throws opengrok.auth.plugin.ldap.LdapException<variables>