mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Guy Paddock
24.31.2017 b092ba85131000627f16a15abc8203f1982f81d1
Add OUs to `BasicRequestsTest`

This adds OUs to the in-memory data model being used by tests, then re-works the existing tests so they continue to pass now that we have that extra data. The next few commits will rely on these OUs to verify that subtree search is working.
1 files modified
125 ■■■■ changed files
opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/BasicRequestsTest.java 125 ●●●● patch | view | raw | blame | history
opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/BasicRequestsTest.java
@@ -93,7 +93,7 @@
    private static final QueryFilter<JsonPointer> NO_FILTER = QueryFilter.alwaysTrue();
    @Test
    public void testQueryAll() throws Exception {
    public void testQueryAllWithNoSubtree() throws Exception {
        final Connection connection = newConnection();
        final List<ResourceResponse> resources = new LinkedList<>();
        final QueryResponse result =
@@ -102,11 +102,26 @@
                newQueryRequest("").setQueryFilter(NO_FILTER),
                resources);
        assertThat(resources).hasSize(5);
        assertThat(resources).hasSize(7);
        assertThat(result.getPagedResultsCookie()).isNull();
        assertThat(result.getTotalPagedResults()).isEqualTo(-1);
    }
//    @Test
//    public void testQueryAllWithSubtree() throws Exception {
//        final Connection connection = newConnection();
//        final List<ResourceResponse> resources = new LinkedList<>();
//        final QueryResponse result =
//            connection.query(
//                newAuthConnectionContext(),
//                newQueryRequest("").setQueryFilter(NO_FILTER),
//                resources);
//
//        assertThat(resources).hasSize(7);
//        assertThat(result.getPagedResultsCookie()).isNull();
//        assertThat(result.getTotalPagedResults()).isEqualTo(-1);
//    }
    @Test
    public void testQueryNone() throws Exception {
        final Connection connection = newConnection();
@@ -128,12 +143,22 @@
        QueryResponse result =
            connection.query(
                newAuthConnectionContext(),
                newQueryRequest("").setQueryFilter(NO_FILTER).setPageSize(2), resources);
                newQueryRequest("")
                    .setQueryFilter(NO_FILTER)
                    .setPageSize(3),
                resources);
        assertThat(result.getPagedResultsCookie()).isNotNull();
        assertThat(resources).hasSize(2);
        assertThat(resources.get(0).getId()).isEqualTo("test1");
        assertThat(resources.get(1).getId()).isEqualTo("test2");
        assertThat(resources).hasSize(3);
        assertThat(resources.get(0).getContent().get("_ou").isNotNull());
        assertThat(resources.get(0).getContent().get("_ou").asString()).isEqualTo("level1");
        assertThat(resources.get(1).getContent().get("_ou").isNull());
        assertThat(resources.get(1).getId()).isEqualTo("test1");
        assertThat(resources.get(2).getContent().get("_ou").isNull());
        assertThat(resources.get(2).getId()).isEqualTo("test2");
        String cookie = result.getPagedResultsCookie();
@@ -145,15 +170,22 @@
                newAuthConnectionContext(),
                newQueryRequest("")
                    .setQueryFilter(NO_FILTER)
                    .setPageSize(2)
                    .setPageSize(3)
                    .setPagedResultsCookie(cookie),
                resources);
        assertThat(result.getPagedResultsCookie()).isNotNull();
        assertThat(resources).hasSize(2);
        assertThat(resources).hasSize(3);
        assertThat(resources.get(0).getContent().get("_ou").isNull());
        assertThat(resources.get(0).getId()).isEqualTo("test3");
        assertThat(resources.get(1).getContent().get("_ou").isNull());
        assertThat(resources.get(1).getId()).isEqualTo("test4");
        assertThat(resources.get(2).getContent().get("_ou").isNull());
        assertThat(resources.get(2).getId()).isEqualTo("test5");
        cookie = result.getPagedResultsCookie();
        resources.clear();
@@ -164,13 +196,15 @@
                newAuthConnectionContext(),
                newQueryRequest("")
                    .setQueryFilter(NO_FILTER)
                    .setPageSize(2)
                    .setPageSize(3)
                    .setPagedResultsCookie(cookie),
                resources);
        assertThat(result.getPagedResultsCookie()).isNull();
        assertThat(resources).hasSize(1);
        assertThat(resources.get(0).getId()).isEqualTo("test5");
        assertThat(resources.get(0).getContent().get("_ou").isNull());
        assertThat(resources.get(0).getId()).isEqualTo("test6");
    }
    @Test
@@ -189,8 +223,8 @@
        assertThat(result.getPagedResultsCookie()).isNotNull();
        assertThat(resources).hasSize(2);
        assertThat(resources.get(0).getId()).isEqualTo("test3");
        assertThat(resources.get(1).getId()).isEqualTo("test4");
        assertThat(resources.get(0).getId()).isEqualTo("test2");
        assertThat(resources.get(1).getId()).isEqualTo("test3");
    }
    @Test(expectedExceptions = NotFoundException.class)
@@ -775,6 +809,9 @@
                        "_id",
                        simple("uid").isRequired(true).writability(CREATE_ONLY))
                    .property(
                        "_ou",
                        simple("ou").isRequired(false).writability(CREATE_ONLY))
                    .property(
                        "name",
                        object()
                          .property("displayName", simple("cn").isRequired(true))
@@ -799,18 +836,24 @@
        assertThat(actual.getId()).isEqualTo(expectedResource.getId());
        assertThat(actual.getRevision()).isEqualTo(expectedResource.getRevision());
        assertThat(actual.getContent().getObject()).isEqualTo(expectedResource.getContent().getObject());
        assertThat(actual.getContent().getObject())
            .isEqualTo(expectedResource.getContent().getObject());
    }
    private AuthenticatedConnectionContext newAuthConnectionContext() throws IOException {
        return newAuthConnectionContext(new ArrayList<Request>());
    }
    private AuthenticatedConnectionContext newAuthConnectionContext(List<Request> requests) throws IOException {
        return new AuthenticatedConnectionContext(ctx(), getConnectionFactory(requests).getConnection());
    private AuthenticatedConnectionContext newAuthConnectionContext(List<Request> requests)
    throws IOException {
        return new AuthenticatedConnectionContext(
            ctx(),
            getConnectionFactory(requests).getConnection());
    }
    private ConnectionFactory getConnectionFactory(final List<Request> requests) throws IOException {
    private ConnectionFactory getConnectionFactory(final List<Request> requests)
    throws IOException {
        // @formatter:off
        final MemoryBackend backend =
                new MemoryBackend(new LDIFEntryReader(
@@ -862,7 +905,46 @@
                        "userpassword: password",
                        "cn: test user 5",
                        "sn: user 5",
                        "etag: 55555"
                        "etag: 55555",
                        "",
                        "dn: uid=test6,dc=test",
                        "objectClass: top",
                        "objectClass: person",
                        "uid: test6",
                        "userpassword: password",
                        "cn: test user 6",
                        "sn: user 6",
                        "etag: 66666",
                        "",
                        "dn: ou=level1,dc=test",
                        "objectClass: top",
                        "objectClass: organizationalUnit",
                        "ou: level1",
                        "etag: 77777",
                        "",
                        "dn: uid=sub1,ou=level1,dc=test",
                        "objectClass: top",
                        "objectClass: person",
                        "uid: sub1",
                        "userpassword: password",
                        "cn: test user level 1",
                        "sn: user 7",
                        "etag: 88888",
                        "",
                        "dn: ou=level2,ou=level1,dc=test",
                        "objectClass: top",
                        "objectClass: organizationalUnit",
                        "ou: level2",
                        "etag: 99999",
                        "",
                        "dn: uid=sub2,ou=level2,ou=level1,dc=test",
                        "objectClass: top",
                        "objectClass: person",
                        "uid: sub2",
                        "userpassword: password",
                        "cn: test user level 2",
                        "sn: user 8",
                        "etag: 86753"
                ));
        // @formatter:on
@@ -938,10 +1020,15 @@
            @Override
            public void handleSearch(RequestContext requestContext, SearchRequest request,
                IntermediateResponseHandler intermediateResponseHandler, SearchResultHandler entryHandler,
                IntermediateResponseHandler intermediateResponseHandler,
                SearchResultHandler entryHandler,
                LdapResultHandler<Result> resultHandler) {
                requests.add(request);
                handler.handleSearch(requestContext, request, intermediateResponseHandler, entryHandler,
                handler.handleSearch(
                    requestContext,
                    request,
                    intermediateResponseHandler,
                    entryHandler,
                    resultHandler);
            }