Author: angela
Date: Thu Nov 16 16:41:53 2017
New Revision: 1815479
URL: http://svn.apache.org/viewvc?rev=1815479&view=rev
Log:
OAK-1588 : Create more tests/validation to LDAP integration
minor improvements in LdapProvider
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java
(with props)
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java
(with props)
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java
(with props)
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java
(with props)
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-auth-ldap/pom.xml
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
Modified: jackrabbit/oak/trunk/oak-auth-ldap/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/pom.xml?rev=1815479&r1=1815478&r2=1815479&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-ldap/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-auth-ldap/pom.xml Thu Nov 16 16:41:53 2017
@@ -35,7 +35,7 @@
<apacheds.test.version>2.0.0-M24</apacheds.test.version>
<!-- enable execution of jacoco and set minimal line coverage -->
<skip.coverage>false</skip.coverage>
- <minimum.coverage>0.73</minimum.coverage>
+ <minimum.coverage>0.86</minimum.coverage>
</properties>
<build>
@@ -404,5 +404,16 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.osgi-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.11.0</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified:
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java?rev=1815479&r1=1815478&r2=1815479&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/main/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProvider.java
Thu Nov 16 16:41:53 2017
@@ -258,9 +258,7 @@ public class LdapIdentityProvider implem
} else {
return null;
}
- } catch (LdapException e) {
- throw lookupFailedException(e, timer);
- } catch (CursorException e) {
+ } catch (LdapException | CursorException e) {
throw lookupFailedException(e, timer);
} finally {
disconnect(connection);
@@ -283,9 +281,7 @@ public class LdapIdentityProvider implem
} else {
return null;
}
- } catch (LdapException e) {
- throw lookupFailedException(e, timer);
- } catch (CursorException e) {
+ } catch (LdapException | CursorException e) {
throw lookupFailedException(e, timer);
} finally {
disconnect(connection);
@@ -311,9 +307,7 @@ public class LdapIdentityProvider implem
return null;
}
};
- } catch (LdapException e) {
- throw lookupFailedException(e, null);
- } catch (CursorException e) {
+ } catch (LdapException | CursorException e) {
throw lookupFailedException(e, null);
}
}
@@ -337,9 +331,7 @@ public class LdapIdentityProvider implem
return null;
}
};
- } catch (LdapException e) {
- throw lookupFailedException(e, null);
- } catch (CursorException e) {
+ } catch (LdapException | CursorException e) {
throw lookupFailedException(e, null);
}
}
@@ -693,11 +685,7 @@ public class LdapIdentityProvider implem
Entry entry = (Entry) page.get(pos);
findNextEntry();
return entry;
- } catch (LdapException e) {
- log.error("Error while performing LDAP search", e);
- } catch (CursorException e) {
- log.error("Error while performing LDAP search", e);
- } catch (ExternalIdentityException e) {
+ } catch (LdapException | CursorException |
ExternalIdentityException e) {
log.error("Error while performing LDAP search", e);
}
}
@@ -851,7 +839,7 @@ public class LdapIdentityProvider implem
final Object propValue;
// for multivalue properties, store as collection
if (attr.size() > 1) {
- List<String> values = new ArrayList<String>();
+ List<String> values = new ArrayList();
for (Value<?> value : attr) {
values.add(value.getString());
}
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java?rev=1815479&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java
(added)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java
Thu Nov 16 16:41:53 2017
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.authentication.ldap.impl;
+
+import com.google.common.collect.Maps;
+import java.util.Map;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class LdapIdentityPropertiesTest {
+
+ private LdapIdentityProperties properties = new LdapIdentityProperties();
+
+ @Before
+ public void before() {
+ properties.put("a", "value");
+ properties.put("A", "value2");
+ }
+
+ @Test
+ public void testConstructorWithInitialSize() {
+ LdapIdentityProperties props = new LdapIdentityProperties(5);
+ assertTrue(props.isEmpty());
+ }
+
+ @Test
+ public void testConstructorWithInitialSizeLoadFactor() {
+ LdapIdentityProperties props = new LdapIdentityProperties(5,
Long.MAX_VALUE);
+ assertTrue(props.isEmpty());
+ }
+
+ @Test
+ public void testConstructorWithMap() {
+ Map m = Maps.newLinkedHashMap();
+ m.put("b", "v");
+ m.put("B", "v2");
+ LdapIdentityProperties props = new LdapIdentityProperties(m);
+ assertEquals(2, props.size());
+ assertEquals(props.get("b"), props.get("B"));
+ }
+
+ @Test
+ public void testContainsKey() {
+ assertTrue(properties.containsKey("a"));
+ assertTrue(properties.containsKey("A"));
+ assertFalse(properties.containsKey("c"));
+ }
+
+ @Test
+ public void testContainsKeyNull() {
+ assertFalse(properties.containsKey(null));
+ }
+
+ @Test
+ public void testPut() {
+ assertEquals(2, properties.size());
+ assertTrue(properties.containsKey("A"));
+ assertTrue(properties.containsKey("a"));
+ }
+
+ @Test
+ public void testPutNull() {
+ assertNull(properties.put(null, "value"));
+ }
+
+ @Test
+ public void testPutAll() {
+ Map m = Maps.newLinkedHashMap();
+ m.put("b", "v");
+ m.put("B", "v2");
+ properties.putAll(m);
+ assertEquals(4, properties.size());
+ assertEquals(properties.get("b"), properties.get("B"));
+ }
+
+ @Test
+ public void testGet() {
+ assertEquals(properties.get("a"), properties.get("A"));
+ }
+
+ @Test
+ public void testGetNull() {
+ assertNull(properties.get(null));
+ }
+
+ @Test
+ public void testRemove() {
+ assertEquals("value2", properties.remove("A"));
+ assertEquals(1, properties.size());
+ assertEquals("value", properties.remove("a"));
+ assertTrue(properties.isEmpty());
+ }
+
+ @Test
+ public void testClear() {
+ properties.clear();
+ assertTrue(properties.isEmpty());
+ assertFalse(properties.containsKey("a"));
+ assertFalse(properties.containsKey("A"));
+ }
+
+ @Test
+ public void testNonStringKey() {
+ properties.put("2", "value");
+ assertTrue(properties.containsKey(2));
+ assertFalse(properties.containsKey(3));
+ }
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityPropertiesTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java?rev=1815479&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java
(added)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java
Thu Nov 16 16:41:53 2017
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.authentication.ldap.impl;
+
+import javax.jcr.GuestCredentials;
+
+import
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityException;
+import
org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef;
+import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class LdapIdentityProviderOsgiTest {
+
+ @Rule
+ public final OsgiContext context = new OsgiContext();
+
+ private LdapIdentityProvider provider = new LdapIdentityProvider();
+
+ @Before
+ public void before() throws Exception {
+ context.registerInjectActivateService(provider);
+ }
+
+ @Test(expected = ExternalIdentityException.class)
+ public void testFromExternalIdentityRefForeign() throws Exception {
+ provider.fromExternalIdentityRef(new ExternalIdentityRef("id",
"anotherName"));
+ }
+
+ @Test
+ public void testFromExternalIdentityRef() throws Exception {
+ assertEquals("id", provider.fromExternalIdentityRef(new
ExternalIdentityRef("id", provider.getName())));
+ }
+
+ @Test
+ public void testGetName() {
+ assertEquals(LdapProviderConfig.PARAM_NAME_DEFAULT,
provider.getName());
+ }
+
+ @Test
+ public void testAuthenticateOtherCredentials() throws Exception {
+ assertNull(provider.authenticate(new GuestCredentials()));
+ }
+
+ @Test
+ public void testGetIdentityForeingRef() throws Exception {
+ ExternalIdentityRef ref = new ExternalIdentityRef("id", "anotherName");
+ assertNull(provider.getIdentity(ref));
+ }
+
+ @Test
+ public void testGetDeclaredGroupRefsForeignRef() throws Exception {
+ ExternalIdentityRef ref = new ExternalIdentityRef("id", "anotherName");
+ assertTrue(provider.getDeclaredGroupRefs(ref).isEmpty());
+ }
+
+ @Test
+ public void testGetDeclaredMemberRefsForeignRef() throws Exception {
+ ExternalIdentityRef ref = new ExternalIdentityRef("id", "anotherName");
+ assertTrue(provider.getDeclaredMemberRefs(ref).isEmpty());
+ }
+
+ @Test(expected = ExternalIdentityException.class)
+ public void testGetUserMissingConnection() throws Exception {
+ provider.getUser("user");
+ }
+
+ @Test(expected = ExternalIdentityException.class)
+ public void testGetGroupMissingConnection() throws Exception {
+ provider.getGroup("gr");
+ }
+
+ @Test(expected = ExternalIdentityException.class)
+ public void testListGroupsMissingConnections() throws Exception {
+ provider.listGroups().hasNext();
+ }
+
+ @Test(expected = ExternalIdentityException.class)
+ public void testListUsersMissingConnections() throws Exception {
+ provider.listUsers().hasNext();
+ }
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapIdentityProviderOsgiTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java?rev=1815479&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java
(added)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java
Thu Nov 16 16:41:53 2017
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.authentication.ldap.impl;
+
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class LdapProviderConfigTest {
+
+ @Test
+ public void testOfEmptyConfigurationParameters() {
+ LdapProviderConfig config =
LdapProviderConfig.of(ConfigurationParameters.EMPTY);
+ assertEquals(LdapProviderConfig.PARAM_NAME_DEFAULT, config.getName());
+ }
+
+ @Test
+ public void testOfConfigurationParameters() {
+ LdapProviderConfig config =
LdapProviderConfig.of(ConfigurationParameters.of(LdapProviderConfig.PARAM_NAME,
"name"));
+ assertEquals("name", config.getName());
+ }
+
+ @Test
+ public void testOfConfigurationParametersIncludingSearchTimeout() {
+ LdapProviderConfig config =
LdapProviderConfig.of(ConfigurationParameters.of(LdapProviderConfig.PARAM_SEARCH_TIMEOUT,
25));
+ assertEquals(25, config.getSearchTimeout());
+ }
+
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/LdapProviderConfigTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java?rev=1815479&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java
(added)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java
Thu Nov 16 16:41:53 2017
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.authentication.ldap.impl;
+
+import org.apache.directory.ldap.client.api.LdapConnectionConfig;
+import org.apache.directory.ldap.client.api.LdapConnectionValidator;
+import org.apache.directory.ldap.client.api.LookupLdapConnectionValidator;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class PoolableUnboundConnectionFactoryTest {
+
+ PoolableUnboundConnectionFactory factory = new
PoolableUnboundConnectionFactory(new LdapConnectionConfig());
+
+ @Test
+ public void testGetValidator() {
+ LdapConnectionValidator validator = factory.getValidator();
+ assertTrue(validator instanceof LookupLdapConnectionValidator);
+ }
+
+ @Test
+ public void testSetValidator() {
+ LdapConnectionValidator validator =
Mockito.mock(LdapConnectionValidator.class);
+ factory.setValidator(validator);
+
+ assertEquals(validator, factory.getValidator());
+ }
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/PoolableUnboundConnectionFactoryTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java?rev=1815479&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java
(added)
+++
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java
Thu Nov 16 16:41:53 2017
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.authentication.ldap.impl;
+
+import org.apache.directory.api.ldap.model.constants.SchemaConstants;
+import org.apache.directory.api.ldap.model.entry.Entry;
+import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.ldap.client.api.LdapConnection;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
+
+public class UnboundLookupConnectionValidatorTest {
+
+ private UnboundLookupConnectionValidator validator = new
UnboundLookupConnectionValidator();
+
+ @Test
+ public void testValidateThrowsException() throws Exception {
+ LdapConnection connection = Mockito.mock(LdapConnection.class);
+ doThrow(LdapException.class).when(connection).lookup(Dn.ROOT_DSE,
SchemaConstants.NO_ATTRIBUTE);
+
+ assertFalse(validator.validate(connection));
+ }
+
+ @Test
+ public void testValidateNotConnected() {
+ LdapConnection connection = Mockito.mock(LdapConnection.class);
+ when(connection.isConnected()).thenReturn(false);
+
+ assertFalse(validator.validate(connection));
+ }
+
+ @Test
+ public void testValidateLookupReturnsNull() throws Exception {
+ LdapConnection connection = Mockito.mock(LdapConnection.class);
+ when(connection.isConnected()).thenReturn(true);
+ when(connection.lookup(Dn.ROOT_DSE,
SchemaConstants.NO_ATTRIBUTE)).thenReturn(null);
+
+ assertFalse(validator.validate(connection));
+ }
+
+ @Test
+ public void testValidateNotConnectedLookupReturnsNull() throws Exception {
+ LdapConnection connection = Mockito.mock(LdapConnection.class);
+ when(connection.isConnected()).thenReturn(false);
+ when(connection.lookup(Dn.ROOT_DSE,
SchemaConstants.NO_ATTRIBUTE)).thenReturn(null);
+
+ assertFalse(validator.validate(connection));
+ }
+
+ @Test
+ public void testValidate() throws Exception {
+ LdapConnection connection = Mockito.mock(LdapConnection.class);
+ when(connection.isConnected()).thenReturn(true);
+ when(connection.lookup(Dn.ROOT_DSE,
SchemaConstants.NO_ATTRIBUTE)).thenReturn(Mockito.mock(Entry.class));
+
+ assertTrue(validator.validate(connection));
+ }
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/impl/UnboundLookupConnectionValidatorTest.java
------------------------------------------------------------------------------
svn:eol-style = native