Repository: camel Updated Branches: refs/heads/master e2e17397a -> 3eb6ddc16
CAMEL-11436: camel-spring-ldap - Has test failures Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3eb6ddc1 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3eb6ddc1 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3eb6ddc1 Branch: refs/heads/master Commit: 3eb6ddc16337e3f50c8b2ec654bfa03fc3f8a791 Parents: e2e1739 Author: Dmitry Volodin <dmvo...@gmail.com> Authored: Thu Jun 22 19:42:16 2017 +0300 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Fri Jun 23 10:05:20 2017 +0200 ---------------------------------------------------------------------- .../springldap/SpringLdapProducerTest.java | 505 ++++++++++--------- 1 file changed, 253 insertions(+), 252 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3eb6ddc1/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java b/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java index cc53c30..031c7f9 100644 --- a/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java +++ b/components/camel-spring-ldap/src/test/java/org/apache/camel/component/springldap/SpringLdapProducerTest.java @@ -1,252 +1,253 @@ -/** - * 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.camel.component.springldap; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.BiFunction; - -import javax.naming.directory.BasicAttribute; -import javax.naming.directory.BasicAttributes; -import javax.naming.directory.DirContext; -import javax.naming.directory.ModificationItem; -import javax.naming.directory.SearchControls; - -import org.apache.camel.Exchange; -import org.apache.camel.Message; -import org.apache.camel.impl.DefaultExchange; -import org.apache.camel.impl.DefaultMessage; -import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Matchers; -import org.mockito.Mockito; -import org.springframework.ldap.core.AttributesMapper; -import org.springframework.ldap.core.LdapOperations; -import org.springframework.ldap.core.LdapTemplate; -import org.springframework.ldap.query.LdapQuery; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.isNull; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class SpringLdapProducerTest extends CamelTestSupport { - - private SpringLdapEndpoint ldapEndpoint = Mockito.mock(SpringLdapEndpoint.class); - private LdapTemplate ldapTemplate = Mockito.mock(LdapTemplate.class); - - private SpringLdapProducer ldapProducer = new SpringLdapProducer(ldapEndpoint); - - @Before - public void setUp() { - when(ldapEndpoint.getLdapTemplate()).thenReturn(ldapTemplate); - } - - @Test(expected = NullPointerException.class) - public void testEmptyExchange() throws Exception { - Exchange exchange = new DefaultExchange(context); - ldapProducer.process(exchange); - } - - @Test(expected = NullPointerException.class) - public void testWrongBodyType() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - in.setBody(""); - - exchange.setIn(in); - ldapProducer.process(exchange); - } - - @Test(expected = UnsupportedOperationException.class) - public void testNoDN() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - - processBody(exchange, in, body); - } - - @Test - public void testNoDNForFunctionDrivenOperation() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.FUNCTION, Mockito.mock(BiFunction.class)); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.FUNCTION_DRIVEN); - - processBody(exchange, in, body); - } - - private void processBody(Exchange exchange, Message message, Map<String, Object> body) throws Exception { - message.setBody(body); - exchange.setIn(message); - ldapProducer.process(exchange); - } - - @Test(expected = UnsupportedOperationException.class) - public void testEmptyDN() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, ""); - - processBody(exchange, in, body); - } - - @Test(expected = UnsupportedOperationException.class) - public void testNullDN() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, null); - - processBody(exchange, in, body); - } - - @Test(expected = UnsupportedOperationException.class) - public void testNullOperation() throws Exception { - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, " "); - - processBody(exchange, in, body); - } - - @Test - public void testSearch() throws Exception { - String dn = "some dn"; - String filter = "filter"; - Integer scope = SearchControls.SUBTREE_SCOPE; - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - body.put(SpringLdapProducer.FILTER, filter); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.SEARCH); - when(ldapEndpoint.scopeValue()).thenReturn(scope); - - processBody(exchange, in, body); - verify(ldapTemplate).search(eq(dn), eq(filter), eq(scope), any(AttributesMapper.class)); - } - - @Test - public void testBind() throws Exception { - String dn = "some dn"; - BasicAttributes attributes = new BasicAttributes(); - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - body.put(SpringLdapProducer.ATTRIBUTES, attributes); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.BIND); - - processBody(exchange, in, body); - verify(ldapTemplate).bind(eq(dn), isNull(), eq(attributes)); - } - - @Test - public void testUnbind() throws Exception { - String dn = "some dn"; - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.UNBIND); - - processBody(exchange, in, body); - verify(ldapTemplate).unbind(eq(dn)); - } - - @Test - public void testAuthenticate() throws Exception { - String dn = "cn=dn"; - String filter = "filter"; - String password = "password"; - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - body.put(SpringLdapProducer.FILTER, filter); - body.put(SpringLdapProducer.PASSWORD, password); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.AUTHENTICATE); - - processBody(exchange, in, body); - verify(ldapTemplate).authenticate(Matchers.any(LdapQuery.class), eq(password)); - } - - @Test - public void testModifyAttributes() throws Exception { - String dn = "cn=dn"; - ModificationItem[] modificationItems = new ModificationItem[] {new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("key", "value"))}; - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - body.put(SpringLdapProducer.MODIFICATION_ITEMS, modificationItems); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.MODIFY_ATTRIBUTES); - - processBody(exchange, in, body); - verify(ldapTemplate).modifyAttributes(eq(dn), eq(modificationItems)); - } - - @Test - public void testFunctionDriven() throws Exception { - String dn = "cn=dn"; - - Exchange exchange = new DefaultExchange(context); - Message in = new DefaultMessage(context); - - Map<String, Object> body = new HashMap<String, Object>(); - body.put(SpringLdapProducer.DN, dn); - body.put(SpringLdapProducer.REQUEST, dn); - body.put(SpringLdapProducer.FUNCTION, (BiFunction<LdapOperations, String, Void>)(l, q) -> { - l.lookup(q); - return null; - }); - - when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.FUNCTION_DRIVEN); - - processBody(exchange, in, body); - verify(ldapTemplate).lookup(eq(dn)); - } - -} +/** + * 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.camel.component.springldap; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiFunction; + +import javax.naming.directory.BasicAttribute; +import javax.naming.directory.BasicAttributes; +import javax.naming.directory.DirContext; +import javax.naming.directory.ModificationItem; +import javax.naming.directory.SearchControls; + +import org.apache.camel.Exchange; +import org.apache.camel.Message; +import org.apache.camel.impl.DefaultExchange; +import org.apache.camel.impl.DefaultMessage; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Matchers; +import org.mockito.Mockito; +import org.springframework.ldap.core.AttributesMapper; +import org.springframework.ldap.core.LdapOperations; +import org.springframework.ldap.core.LdapTemplate; +import org.springframework.ldap.query.LdapQuery; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isNull; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SpringLdapProducerTest extends CamelTestSupport { + + private SpringLdapEndpoint ldapEndpoint = Mockito.mock(SpringLdapEndpoint.class); + private LdapTemplate ldapTemplate = Mockito.mock(LdapTemplate.class); + + private SpringLdapProducer ldapProducer = new SpringLdapProducer(ldapEndpoint); + + @Before + public void setUp() throws Exception { + super.setUp(); + when(ldapEndpoint.getLdapTemplate()).thenReturn(ldapTemplate); + } + + @Test(expected = UnsupportedOperationException.class) + public void testEmptyExchange() throws Exception { + Exchange exchange = new DefaultExchange(context); + ldapProducer.process(exchange); + } + + @Test(expected = UnsupportedOperationException.class) + public void testWrongBodyType() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + in.setBody(""); + + exchange.setIn(in); + ldapProducer.process(exchange); + } + + @Test(expected = UnsupportedOperationException.class) + public void testNoDN() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + + processBody(exchange, in, body); + } + + @Test + public void testNoDNForFunctionDrivenOperation() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.FUNCTION, Mockito.mock(BiFunction.class)); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.FUNCTION_DRIVEN); + + processBody(exchange, in, body); + } + + private void processBody(Exchange exchange, Message message, Map<String, Object> body) throws Exception { + message.setBody(body); + exchange.setIn(message); + ldapProducer.process(exchange); + } + + @Test(expected = UnsupportedOperationException.class) + public void testEmptyDN() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, ""); + + processBody(exchange, in, body); + } + + @Test(expected = UnsupportedOperationException.class) + public void testNullDN() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, null); + + processBody(exchange, in, body); + } + + @Test(expected = UnsupportedOperationException.class) + public void testNullOperation() throws Exception { + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, " "); + + processBody(exchange, in, body); + } + + @Test + public void testSearch() throws Exception { + String dn = "some dn"; + String filter = "filter"; + Integer scope = SearchControls.SUBTREE_SCOPE; + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + body.put(SpringLdapProducer.FILTER, filter); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.SEARCH); + when(ldapEndpoint.scopeValue()).thenReturn(scope); + + processBody(exchange, in, body); + verify(ldapTemplate).search(eq(dn), eq(filter), eq(scope), any(AttributesMapper.class)); + } + + @Test + public void testBind() throws Exception { + String dn = "some dn"; + BasicAttributes attributes = new BasicAttributes(); + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + body.put(SpringLdapProducer.ATTRIBUTES, attributes); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.BIND); + + processBody(exchange, in, body); + verify(ldapTemplate).bind(eq(dn), isNull(), eq(attributes)); + } + + @Test + public void testUnbind() throws Exception { + String dn = "some dn"; + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.UNBIND); + + processBody(exchange, in, body); + verify(ldapTemplate).unbind(eq(dn)); + } + + @Test + public void testAuthenticate() throws Exception { + String dn = "cn=dn"; + String filter = "filter"; + String password = "password"; + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + body.put(SpringLdapProducer.FILTER, filter); + body.put(SpringLdapProducer.PASSWORD, password); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.AUTHENTICATE); + + processBody(exchange, in, body); + verify(ldapTemplate).authenticate(Matchers.any(LdapQuery.class), eq(password)); + } + + @Test + public void testModifyAttributes() throws Exception { + String dn = "cn=dn"; + ModificationItem[] modificationItems = new ModificationItem[] {new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("key", "value"))}; + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + body.put(SpringLdapProducer.MODIFICATION_ITEMS, modificationItems); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.MODIFY_ATTRIBUTES); + + processBody(exchange, in, body); + verify(ldapTemplate).modifyAttributes(eq(dn), eq(modificationItems)); + } + + @Test + public void testFunctionDriven() throws Exception { + String dn = "cn=dn"; + + Exchange exchange = new DefaultExchange(context); + Message in = new DefaultMessage(context); + + Map<String, Object> body = new HashMap<String, Object>(); + body.put(SpringLdapProducer.DN, dn); + body.put(SpringLdapProducer.REQUEST, dn); + body.put(SpringLdapProducer.FUNCTION, (BiFunction<LdapOperations, String, Void>)(l, q) -> { + l.lookup(q); + return null; + }); + + when(ldapEndpoint.getOperation()).thenReturn(LdapOperation.FUNCTION_DRIVEN); + + processBody(exchange, in, body); + verify(ldapTemplate).lookup(eq(dn)); + } + +}