http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterAlreadyConnectedTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterAlreadyConnectedTest.java b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterAlreadyConnectedTest.java new file mode 100644 index 0000000..06b7c07 --- /dev/null +++ b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterAlreadyConnectedTest.java @@ -0,0 +1,58 @@ +/** + * 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.bonita.api; + +import java.util.HashMap; +import java.util.Map; + +import javax.ws.rs.client.ClientRequestContext; +import javax.ws.rs.core.Cookie; + +import org.apache.camel.component.bonita.api.filter.BonitaAuthFilter; +import org.apache.camel.component.bonita.api.util.BonitaAPIConfig; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +public class BonitaAuthFilterAlreadyConnectedTest { + + + @Mock + private ClientRequestContext requestContext; + + + + @Before + public void setup() { + Map<String,Cookie> resultCookies = new HashMap<>(); + resultCookies.put("JSESSIONID", new Cookie("JSESSIONID","something")); + Mockito.when(requestContext.getCookies()).thenReturn(resultCookies); + + } + + + @Test + public void testAlreadyConnected() throws Exception{ + BonitaAPIConfig bonitaApiConfig = new BonitaAPIConfig("hostname", "port", "username", "password"); + BonitaAuthFilter bonitaAuthFilter = new BonitaAuthFilter(bonitaApiConfig); + bonitaAuthFilter.filter(requestContext); + } +}
http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterConnectionTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterConnectionTest.java b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterConnectionTest.java new file mode 100644 index 0000000..7781d716 --- /dev/null +++ b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterConnectionTest.java @@ -0,0 +1,72 @@ +/** + * 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.bonita.api; + +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; + +import java.util.HashMap; + +import javax.ws.rs.client.ClientRequestContext; +import javax.ws.rs.core.Cookie; +import javax.ws.rs.core.MultivaluedHashMap; + +import org.apache.camel.component.bonita.api.filter.BonitaAuthFilter; +import org.apache.camel.component.bonita.api.util.BonitaAPIConfig; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.modules.junit4.PowerMockRunner; +import static org.junit.Assert.*; +import com.github.tomakehurst.wiremock.junit.WireMockRule; + +@RunWith(PowerMockRunner.class) +@PowerMockIgnore("javax.net.ssl.*") +public class BonitaAuthFilterConnectionTest { + + @Rule + public WireMockRule wireMockRule = new WireMockRule(0); + + @Mock + private ClientRequestContext requestContext; + + @Before + public void setup() { + Mockito.when(requestContext.getCookies()).thenReturn(new HashMap<String,Cookie>()); + Mockito.when(requestContext.getHeaders()).thenReturn(new MultivaluedHashMap()); + } + + @Test + public void testConnection() throws Exception{ + String port = wireMockRule.port() + ""; + stubFor(post(urlEqualTo("/bonita/loginservice")) + .willReturn(aResponse() + .withHeader("Set-Cookie", "JSESSIONID=something"))); + + BonitaAPIConfig bonitaApiConfig = new BonitaAPIConfig("localhost", port, "username", "password"); + BonitaAuthFilter bonitaAuthFilter = new BonitaAuthFilter(bonitaApiConfig); + bonitaAuthFilter.filter(requestContext); + assertEquals(1, requestContext.getHeaders().size()); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterTest.java b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterTest.java new file mode 100644 index 0000000..ad633cd --- /dev/null +++ b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/BonitaAuthFilterTest.java @@ -0,0 +1,49 @@ +package org.apache.camel.component.bonita.api; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.ws.rs.client.ClientRequestContext; +import javax.ws.rs.core.Cookie; +import javax.ws.rs.core.MultivaluedHashMap; + +import org.apache.camel.component.bonita.api.filter.BonitaAuthFilter; +import org.apache.camel.component.bonita.api.util.BonitaAPIConfig; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +public class BonitaAuthFilterTest { + + @Mock + private ClientRequestContext requestContext; + + @Before + public void setup() { + Map<String,Cookie> resultCookies = new HashMap<>(); + Mockito.when(requestContext.getCookies()).thenReturn(resultCookies); + + } + + + @Test(expected=IllegalArgumentException.class) + public void testBonitaAuthFilterUsernameEmpty() throws IOException { + BonitaAPIConfig bonitaApiConfig = new BonitaAPIConfig("localhost", "port", "", "password"); + BonitaAuthFilter bonitaAuthFilter = new BonitaAuthFilter(bonitaApiConfig); + bonitaAuthFilter.filter(requestContext); + + } + + @Test(expected=IllegalArgumentException.class) + public void testBonitaAuthFilterPasswordEmpty() throws IOException { + BonitaAPIConfig bonitaApiConfig = new BonitaAPIConfig("localhost", "port", "username", ""); + BonitaAuthFilter bonitaAuthFilter = new BonitaAuthFilter(bonitaApiConfig); + bonitaAuthFilter.filter(requestContext); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIConfigTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIConfigTest.java b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIConfigTest.java new file mode 100644 index 0000000..8e26c0d --- /dev/null +++ b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIConfigTest.java @@ -0,0 +1,32 @@ +/** + * 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.bonita.api.util; + +import org.junit.Test; +import static org.junit.Assert.*; + +import org.apache.camel.component.bonita.api.util.BonitaAPIConfig; + +public class BonitaAPIConfigTest { + + @Test + public void testBaseBonitaURL() { + BonitaAPIConfig config = new BonitaAPIConfig("host", "port", "username", "password"); + assertEquals("http://host:port/bonita", config.getBaseBonitaURI()); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIUtilPrepareInputsTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIUtilPrepareInputsTest.java b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIUtilPrepareInputsTest.java new file mode 100644 index 0000000..074f50b --- /dev/null +++ b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/api/util/BonitaAPIUtilPrepareInputsTest.java @@ -0,0 +1,115 @@ +/** + * 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.bonita.api.util; + +import static org.junit.Assert.*; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.component.bonita.api.model.FileInput; +import org.apache.camel.component.bonita.api.model.ProcessDefinitionResponse; +import org.apache.camel.component.bonita.api.model.UploadFileResponse; +import org.apache.camel.component.bonita.api.util.BonitaAPIConfig; +import org.apache.camel.component.bonita.api.util.BonitaAPIUtil; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(BonitaAPIUtil.class) +public class BonitaAPIUtilPrepareInputsTest { + + + private BonitaAPIUtil bonitaApiUtil; + + @Mock + ProcessDefinitionResponse processDefinition; + + @Before + public void setup() { + bonitaApiUtil = BonitaAPIUtil.getInstance(new BonitaAPIConfig("hostname", "port", "username", "password")); + Mockito.when(processDefinition.getName()).thenReturn("processName"); + Mockito.when(processDefinition.getVersion()).thenReturn("1.0"); + Mockito.when(processDefinition.getId()).thenReturn("1"); + } + + @Test + public void testPrepareInputsEmpty() { + Map<String, Serializable> rawInputs = new HashMap<String,Serializable>(); + Map<String, Serializable> inputs = bonitaApiUtil.prepareInputs(processDefinition, rawInputs); + assertEquals(inputs.size(), rawInputs.size()); + } + + @Test + public void testPrepareInputsNoFiles() { + Map<String, Serializable> rawInputs = new HashMap<String,Serializable>(); + rawInputs.put("myVariable", 1); + Map<String, Serializable> inputs = bonitaApiUtil.prepareInputs(processDefinition, rawInputs); + assertEquals(rawInputs.size(), inputs.size()); + } + + @Test + public void testPrepareInputsOneFile() { + + Map<String, Serializable> rawInputs = new HashMap<String,Serializable>(); + FileInput file = new FileInput("filename", "String".getBytes()); + rawInputs.put("myVariable", 1); + rawInputs.put("filename", file); + BonitaAPIUtil bonitaApiUtilMod = Mockito.spy(bonitaApiUtil); + UploadFileResponse uploadFileResponse = new UploadFileResponse(); + uploadFileResponse.setTempPath("temp"); + Mockito.doReturn(uploadFileResponse).when(bonitaApiUtilMod).uploadFile(Mockito.any(),Mockito.any()); + Map<String, Serializable> inputs = bonitaApiUtilMod.prepareInputs(processDefinition, rawInputs); + assertEquals(rawInputs.size(), inputs.size()); + } + + @Test + public void testPrepareInputsFileType() { + + Map<String, Serializable> rawInputs = new HashMap<String,Serializable>(); + FileInput file = new FileInput("filename", "String".getBytes()); + rawInputs.put("filename", file); + BonitaAPIUtil bonitaApiUtilMod = Mockito.spy(bonitaApiUtil); + UploadFileResponse uploadFileResponse = new UploadFileResponse(); + uploadFileResponse.setTempPath("temp"); + Mockito.doReturn(uploadFileResponse).when(bonitaApiUtilMod).uploadFile(Mockito.any(),Mockito.any()); + Map<String, Serializable> inputs = bonitaApiUtilMod.prepareInputs(processDefinition, rawInputs); + assertTrue(Map.class.isInstance(inputs.get("filename"))); + } + + @Test + public void testPrepareInputsTempFilePath() { + + Map<String, Serializable> rawInputs = new HashMap<String,Serializable>(); + FileInput file = new FileInput("filename", "String".getBytes()); + rawInputs.put("filename", file); + BonitaAPIUtil bonitaApiUtilMod = Mockito.spy(bonitaApiUtil); + UploadFileResponse uploadFileResponse = new UploadFileResponse(); + uploadFileResponse.setTempPath("temp"); + Mockito.doReturn(uploadFileResponse).when(bonitaApiUtilMod).uploadFile(Mockito.any(),Mockito.any()); + Map<String, Serializable> inputs = bonitaApiUtilMod.prepareInputs(processDefinition, rawInputs); + Map<String, Serializable> fileMap = (Map<String, Serializable>)inputs.get("filename"); + assertEquals("temp", fileMap.get("tempPath")); + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/camel-bonita/src/test/resources/log4j.properties ---------------------------------------------------------------------- diff --git a/components/camel-bonita/src/test/resources/log4j.properties b/components/camel-bonita/src/test/resources/log4j.properties new file mode 100644 index 0000000..23a8d97 --- /dev/null +++ b/components/camel-bonita/src/test/resources/log4j.properties @@ -0,0 +1,29 @@ +# +# 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. +# +# The logging properties used +# +log4j.rootLogger=INFO, out + +# uncomment the following line to turn on Camel debugging +#log4j.logger.org.apache.camel=DEBUG + +# CONSOLE appender not used by default +log4j.appender.out=org.apache.log4j.ConsoleAppender +log4j.appender.out.layout=org.apache.log4j.PatternLayout +log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n +#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n + http://git-wip-us.apache.org/repos/asf/camel/blob/0b057b16/components/pom.xml ---------------------------------------------------------------------- diff --git a/components/pom.xml b/components/pom.xml index e08c6ef..abbeb0b 100644 --- a/components/pom.xml +++ b/components/pom.xml @@ -75,6 +75,7 @@ <module>camel-bean-validator</module> <module>camel-barcode</module> <module>camel-bindy</module> + <module>camel-bonita</module> <module>camel-boon</module> <module>camel-box</module> <module>camel-braintree</module>