Search in sources :

Example 16 with Filter

use of org.forgerock.opendj.ldap.Filter in project OpenAM by OpenRock.

the class LdapAdapterTest method shouldPartialQuery.

@Test
public void shouldPartialQuery() throws Exception {
    // Given
    final QueryBuilder<Connection, Filter> mockBuilder = mock(QueryBuilder.class);
    given(mockBuilder.withFilter(any(Filter.class))).willAnswer(new Answer<QueryBuilder<Connection, Filter>>() {

        @Override
        public QueryBuilder<Connection, Filter> answer(InvocationOnMock invocation) throws Throwable {
            return mockBuilder;
        }
    });
    given(mockBuilder.returnTheseAttributes(anySetOf(CoreTokenField.class))).willAnswer(new Answer<QueryBuilder<Connection, Filter>>() {

        @Override
        public QueryBuilder<Connection, Filter> answer(InvocationOnMock invocation) throws Throwable {
            return mockBuilder;
        }
    });
    PartialToken partialToken = new PartialToken(new HashMap<CoreTokenField, Object>());
    given(mockBuilder.executeAttributeQuery(any(Connection.class))).willReturn(Arrays.asList((Collection<PartialToken>) Arrays.asList(partialToken)).iterator());
    given(mockQueryFactory.createInstance()).willReturn(mockBuilder);
    QueryFilterVisitor<Filter, Void, CoreTokenField> visitor = mock(QueryFilterVisitor.class);
    given(mockQueryFactory.createFilterConverter()).willReturn(visitor);
    given(visitor.visitBooleanLiteralFilter(null, true)).willReturn(Filter.alwaysTrue());
    // When
    TokenFilter filter = new TokenFilterBuilder().withQuery(QueryFilter.<CoreTokenField>alwaysTrue()).returnAttribute(CoreTokenField.STRING_ONE).build();
    Collection<PartialToken> result = adapter.partialQuery(mockConnection, filter);
    // Then
    verify(mockBuilder).withFilter(any(Filter.class));
    verify(mockBuilder).returnTheseAttributes(asSet(CoreTokenField.STRING_ONE));
    verify(mockBuilder).executeAttributeQuery(mockConnection);
    assertThat(result).containsOnly(partialToken);
}
Also used : PartialToken(org.forgerock.openam.sm.datalayer.api.query.PartialToken) Connection(org.forgerock.opendj.ldap.Connection) CoreTokenField(org.forgerock.openam.tokens.CoreTokenField) QueryBuilder(org.forgerock.openam.sm.datalayer.api.query.QueryBuilder) Filter(org.forgerock.opendj.ldap.Filter) TokenFilter(org.forgerock.openam.cts.api.filter.TokenFilter) QueryFilter(org.forgerock.util.query.QueryFilter) InvocationOnMock(org.mockito.invocation.InvocationOnMock) TokenFilterBuilder(org.forgerock.openam.cts.api.filter.TokenFilterBuilder) TokenFilter(org.forgerock.openam.cts.api.filter.TokenFilter) Test(org.testng.annotations.Test)

Aggregations

Filter (org.forgerock.opendj.ldap.Filter)16 HashSet (java.util.HashSet)9 CaseInsensitiveHashSet (com.sun.identity.common.CaseInsensitiveHashSet)8 ByteString (org.forgerock.opendj.ldap.ByteString)7 Connection (org.forgerock.opendj.ldap.Connection)7 SearchRequest (org.forgerock.opendj.ldap.requests.SearchRequest)6 CaseInsensitiveHashMap (com.sun.identity.common.CaseInsensitiveHashMap)5 HashMap (java.util.HashMap)5 LinkedHashSet (java.util.LinkedHashSet)5 Set (java.util.Set)5 CollectionUtils.asSet (org.forgerock.openam.utils.CollectionUtils.asSet)5 LdapException (org.forgerock.opendj.ldap.LdapException)5 SearchResultReferenceIOException (org.forgerock.opendj.ldap.SearchResultReferenceIOException)5 ConnectionEntryReader (org.forgerock.opendj.ldif.ConnectionEntryReader)5 Test (org.testng.annotations.Test)5 SearchResultEntry (org.forgerock.opendj.ldap.responses.SearchResultEntry)4 CollectionUtils.asOrderedSet (org.forgerock.openam.utils.CollectionUtils.asOrderedSet)3 Attribute (org.forgerock.opendj.ldap.Attribute)3 DN (org.forgerock.opendj.ldap.DN)3 LinkedAttribute (org.forgerock.opendj.ldap.LinkedAttribute)3