http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.java new file mode 100644 index 0000000..bb1e029 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConsumer.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.linkedin; + +import java.util.Map; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; + +import org.apache.camel.Processor; +import org.apache.camel.RuntimeCamelException; +import org.apache.camel.component.linkedin.api.LinkedInException; +import org.apache.camel.component.linkedin.api.model.Error; +import org.apache.camel.component.linkedin.internal.LinkedInApiName; +import org.apache.camel.util.component.AbstractApiConsumer; + +/** + * The LinkedIn consumer. + */ +public class LinkedInConsumer extends AbstractApiConsumer<LinkedInApiName, LinkedInConfiguration> { + + public LinkedInConsumer(LinkedInEndpoint endpoint, Processor processor) { + super(endpoint, processor); + } + + @Override + protected Object doInvokeMethod(Map<String, Object> args) { + try { + return super.doInvokeMethod(args); + } catch (RuntimeCamelException e) { + if (e.getCause() instanceof WebApplicationException) { + WebApplicationException cause = (WebApplicationException) e.getCause(); + final Response response = cause.getResponse(); + if (response.hasEntity()) { + // try and convert it to LinkedInException + final org.apache.camel.component.linkedin.api.model.Error error = response.readEntity(Error.class); + throw new RuntimeCamelException( + String.format("Error invoking %s: %s", method.getName(), error.getMessage()), + new LinkedInException(error, response)); + } + } + throw e; + } + } +}
http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java new file mode 100644 index 0000000..12f8ade --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java @@ -0,0 +1,174 @@ +/** + * 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.linkedin; + +import java.util.Arrays; +import java.util.Map; + +import org.apache.camel.Consumer; +import org.apache.camel.Processor; +import org.apache.camel.Producer; +import org.apache.camel.component.linkedin.api.CommentsResource; +import org.apache.camel.component.linkedin.api.CompaniesResource; +import org.apache.camel.component.linkedin.api.GroupsResource; +import org.apache.camel.component.linkedin.api.JobsResource; +import org.apache.camel.component.linkedin.api.LinkedInOAuthRequestFilter; +import org.apache.camel.component.linkedin.api.PeopleResource; +import org.apache.camel.component.linkedin.api.PostsResource; +import org.apache.camel.component.linkedin.api.SearchResource; +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.LinkedInApiName; +import org.apache.camel.component.linkedin.internal.LinkedInConstants; +import org.apache.camel.component.linkedin.internal.LinkedInPropertiesHelper; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.util.component.AbstractApiEndpoint; +import org.apache.camel.util.component.ApiMethod; +import org.apache.camel.util.component.ApiMethodPropertiesHelper; +import org.apache.cxf.jaxrs.client.JAXRSClientFactory; +import org.apache.cxf.jaxrs.client.WebClient; + +/** + * Represents a LinkedIn endpoint. + */ +@UriEndpoint(scheme = "linkedin", consumerClass = LinkedInConsumer.class, consumerPrefix = "consumer") +public class LinkedInEndpoint extends AbstractApiEndpoint<LinkedInApiName, LinkedInConfiguration> { + + private static final String DEFAULT_FIELDS_SELECTOR = ""; + private static final String FIELDS_OPTION = "fields"; + // OAuth request filter + private LinkedInOAuthRequestFilter requestFilter; + + // Resource API proxy + private Object resourceProxy; + + public LinkedInEndpoint(String uri, LinkedInComponent component, + LinkedInApiName apiName, String methodName, LinkedInConfiguration endpointConfiguration) { + super(uri, component, apiName, methodName, LinkedInApiCollection.getCollection().getHelper(apiName), endpointConfiguration); + + } + + public Producer createProducer() throws Exception { + return new LinkedInProducer(this); + } + + public Consumer createConsumer(Processor processor) throws Exception { + // make sure inBody is not set for consumers + if (inBody != null) { + throw new IllegalArgumentException("Option inBody is not supported for consumer endpoint"); + } + final LinkedInConsumer consumer = new LinkedInConsumer(this, processor); + // also set consumer.* properties + configureConsumer(consumer); + return consumer; + } + + @Override + protected ApiMethodPropertiesHelper<LinkedInConfiguration> getPropertiesHelper() { + return LinkedInPropertiesHelper.getHelper(); + } + + protected String getThreadProfileName() { + return LinkedInConstants.THREAD_PROFILE_NAME; + } + + @Override + protected void afterConfigureProperties() { + createProxy(); + } + + // create API proxy, set connection properties, etc. + private void createProxy() { + // create endpoint filter or get shared filter if configuration values are same as component + requestFilter = getComponent().getRequestFilter(configuration); + + final Class<?> proxyClass; + switch (apiName) { + case COMMENTS: + proxyClass = CommentsResource.class; + break; + case COMPANIES: + proxyClass = CompaniesResource.class; + break; + case GROUPS: + proxyClass = GroupsResource.class; + break; + case JOBS: + proxyClass = JobsResource.class; + break; + case PEOPLE: + proxyClass = PeopleResource.class; + break; + case POSTS: + proxyClass = PostsResource.class; + break; + case SEARCH: + proxyClass = SearchResource.class; + break; + default: + throw new IllegalArgumentException("Invalid API name " + apiName); + } + + // create endpoint proxy + resourceProxy = JAXRSClientFactory.create(LinkedInOAuthRequestFilter.BASE_ADDRESS, proxyClass, + Arrays.asList(new Object[]{requestFilter})); + } + + @Override + public Object getApiProxy(ApiMethod method, Map<String, Object> args) { + return resourceProxy; + } + + @Override + protected void doStart() throws Exception { + super.doStart(); + + if (resourceProxy == null) { + createProxy(); + } + } + + @Override + protected void doStop() throws Exception { + super.doStop(); + + if (resourceProxy != null) { + try { + WebClient.client(resourceProxy).close(); + } catch (Exception e) { + log.warn("Error closing LinkedIn REST proxy: " + e.getMessage(), e); + } + resourceProxy = null; + } + + if (requestFilter != null) { + getComponent().closeRequestFilter(requestFilter); + requestFilter = null; + } + } + + @Override + public LinkedInComponent getComponent() { + return (LinkedInComponent) super.getComponent(); + } + + @Override + public void interceptProperties(Map<String, Object> properties) { + if (!properties.containsKey(FIELDS_OPTION)) { + properties.put(FIELDS_OPTION, DEFAULT_FIELDS_SELECTOR); + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java new file mode 100644 index 0000000..4c03856 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInProducer.java @@ -0,0 +1,59 @@ +/** + * 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.linkedin; + +import java.util.Map; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; + +import org.apache.camel.RuntimeCamelException; +import org.apache.camel.component.linkedin.api.LinkedInException; +import org.apache.camel.component.linkedin.api.model.Error; +import org.apache.camel.component.linkedin.internal.LinkedInApiName; +import org.apache.camel.component.linkedin.internal.LinkedInPropertiesHelper; +import org.apache.camel.util.component.AbstractApiProducer; +import org.apache.camel.util.component.ApiMethod; + +/** + * The LinkedIn producer. + */ +public class LinkedInProducer extends AbstractApiProducer<LinkedInApiName, LinkedInConfiguration> { + + public LinkedInProducer(LinkedInEndpoint endpoint) { + super(endpoint, LinkedInPropertiesHelper.getHelper()); + } + + @Override + protected Object doInvokeMethod(ApiMethod method, Map<String, Object> properties) throws RuntimeCamelException { + try { + return super.doInvokeMethod(method, properties); + } catch (RuntimeCamelException e) { + if (e.getCause() instanceof WebApplicationException) { + final WebApplicationException cause = (WebApplicationException) e.getCause(); + final Response response = cause.getResponse(); + if (response.hasEntity()) { + // try and convert it to LinkedInException + final org.apache.camel.component.linkedin.api.model.Error error = response.readEntity(Error.class); + throw new RuntimeCamelException( + String.format("Error invoking %s: %s", method.getName(), error.getMessage()), + new LinkedInException(error, response)); + } + } + throw e; + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java new file mode 100644 index 0000000..029e3ab --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java @@ -0,0 +1,50 @@ +/** + * 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.linkedin.internal; + +import org.apache.camel.component.linkedin.api.OAuthSecureStorage; +import org.apache.camel.component.linkedin.api.OAuthToken; + +/** + * Caching implementation of {@link org.apache.camel.component.linkedin.api.OAuthSecureStorage} + */ +public class CachingOAuthSecureStorage implements OAuthSecureStorage { + + private final OAuthSecureStorage secureStorage; + private OAuthToken token; + + public CachingOAuthSecureStorage(OAuthSecureStorage secureStorage) { + this.secureStorage = secureStorage; + } + + @Override + public OAuthToken getOAuthToken() { + // delegate only if token doesn't exist or has expired + if (secureStorage != null && (token == null || token.getExpiryTime() < System.currentTimeMillis())) { + token = secureStorage.getOAuthToken(); + } + return token; + } + + @Override + public void saveOAuthToken(OAuthToken newToken) { + token = newToken; + if (secureStorage != null) { + secureStorage.saveOAuthToken(newToken); + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java new file mode 100644 index 0000000..9ef5575b --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInConstants.java @@ -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. + */ +package org.apache.camel.component.linkedin.internal; + +/** + * Constants for LinkedIn component. + */ +public interface LinkedInConstants { + + // suffix for parameters when passed as exchange header properties + String PROPERTY_PREFIX = "CamelLinkedIn."; + + // thread profile name for this component + String THREAD_PROFILE_NAME = "CamelLinkedIn"; +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java new file mode 100644 index 0000000..b4a31b6 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/LinkedInPropertiesHelper.java @@ -0,0 +1,40 @@ +/** + * 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.linkedin.internal; + +import org.apache.camel.util.component.ApiMethodPropertiesHelper; + +import org.apache.camel.component.linkedin.LinkedInConfiguration; + +/** + * Singleton {@link ApiMethodPropertiesHelper} for LinkedIn component. + */ +public final class LinkedInPropertiesHelper extends ApiMethodPropertiesHelper<LinkedInConfiguration> { + + private static LinkedInPropertiesHelper helper; + + private LinkedInPropertiesHelper() { + super(LinkedInConfiguration.class, LinkedInConstants.PROPERTY_PREFIX); + } + + public static synchronized LinkedInPropertiesHelper getHelper() { + if (helper == null) { + helper = new LinkedInPropertiesHelper(); + } + return helper; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/services/org/apache/camel/component/linkedin ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/services/org/apache/camel/component/linkedin b/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/services/org/apache/camel/component/linkedin new file mode 100644 index 0000000..6d67bad --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/main/resources/META-INF/services/org/apache/camel/component/linkedin @@ -0,0 +1 @@ +class=org.apache.camel.component.linkedin.LinkedInComponent http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java new file mode 100644 index 0000000..1282aef --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/AbstractLinkedInTestSupport.java @@ -0,0 +1,73 @@ +package org.apache.camel.component.linkedin; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.apache.camel.CamelContext; +import org.apache.camel.CamelExecutionException; +import org.apache.camel.component.linkedin.api.OAuthScope; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.apache.camel.util.IntrospectionSupport; + +/** + * Abstract base class for LinkedIn Integration tests generated by Camel API component maven plugin. + */ +public class AbstractLinkedInTestSupport extends CamelTestSupport { + + private static final String TEST_OPTIONS_PROPERTIES = "/test-options.properties"; + + @Override + protected CamelContext createCamelContext() throws Exception { + + final CamelContext context = super.createCamelContext(); + + // read LinkedIn component configuration from TEST_OPTIONS_PROPERTIES + final Properties properties = new Properties(); + try { + properties.load(getClass().getResourceAsStream(TEST_OPTIONS_PROPERTIES)); + } catch (Exception e) { + throw new IOException(String.format("%s could not be loaded: %s", TEST_OPTIONS_PROPERTIES, e.getMessage()), + e); + } + + Map<String, Object> options = new HashMap<String, Object>(); + for (Map.Entry<Object, Object> entry : properties.entrySet()) { + options.put(entry.getKey().toString(), entry.getValue()); + } + // set scopes + final String scope = properties.getProperty("scope"); + if (scope != null) { + options.put("scopes", OAuthScope.fromValues(scope.split(","))); + } + // TODO save and load token from TEST_OPTIONS_PROPERTIES + + final LinkedInConfiguration configuration = new LinkedInConfiguration(); + IntrospectionSupport.setProperties(configuration, options); + + // add LinkedInComponent to Camel context + final LinkedInComponent component = new LinkedInComponent(context); + component.setConfiguration(configuration); + context.addComponent("linkedin", component); + + return context; + } + + @Override + public boolean isCreateCamelContextPerClass() { + // only create the context once for this class + return true; + } + + @SuppressWarnings("unchecked") + protected <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers) + throws CamelExecutionException { + return (T) template().requestBodyAndHeaders(endpointUri, body, headers); + } + + @SuppressWarnings("unchecked") + protected <T> T requestBody(String endpoint, Object body) throws CamelExecutionException { + return (T) template().requestBody(endpoint, body); + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java new file mode 100644 index 0000000..844ff7a --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CommentsResourceIntegrationTest.java @@ -0,0 +1,66 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:10 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.CommentsResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.CommentsResource} APIs. + */ +public class CommentsResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(CommentsResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(CommentsResourceApiMethod.class).getName(); + + // TODO provide parameter values for getComment + @Ignore + @Test + public void testGetComment() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.comment_id", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Comment result = requestBodyAndHeaders("direct://GETCOMMENT", null, headers); + + assertNotNull("getComment result", result); + LOG.debug("getComment: " + result); + } + + // TODO provide parameter values for removeComment + @Ignore + @Test + public void testRemoveComment() throws Exception { + // using String message body for single parameter "comment_id" + requestBody("direct://REMOVECOMMENT", null); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for getComment + from("direct://GETCOMMENT") + .to("linkedin://" + PATH_PREFIX + "/getComment"); + + // test route for removeComment + from("direct://REMOVECOMMENT") + .to("linkedin://" + PATH_PREFIX + "/removeComment?inBody=comment_id"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java new file mode 100644 index 0000000..fd7cb47 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/CompaniesResourceIntegrationTest.java @@ -0,0 +1,353 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:10 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.CompaniesResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.CompaniesResource} APIs. + */ +public class CompaniesResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(CompaniesResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(CompaniesResourceApiMethod.class).getName(); + private static final Long TEST_COMPANY_ID = 1337L; + + // TODO provide parameter values for addCompanyUpdateComment + @Ignore + @Test + public void testAddCompanyUpdateComment() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is org.apache.camel.component.linkedin.api.model.UpdateComment + headers.put("CamelLinkedIn.updatecomment", null); + + requestBodyAndHeaders("direct://ADDCOMPANYUPDATECOMMENT", null, headers); + } + + // TODO provide parameter values for addCompanyUpdateCommentAsCompany + @Ignore + @Test + public void testAddCompanyUpdateCommentAsCompany() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is org.apache.camel.component.linkedin.api.model.UpdateComment + headers.put("CamelLinkedIn.updatecomment", null); + + requestBodyAndHeaders("direct://ADDCOMPANYUPDATECOMMENTASCOMPANY", null, headers); + } + + // TODO provide parameter values for addShare + @Ignore + @Test + public void testAddShare() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is org.apache.camel.component.linkedin.api.model.Share + headers.put("CamelLinkedIn.share", null); + + requestBodyAndHeaders("direct://ADDSHARE", null, headers); + } + + @Test + public void testGetCompanies() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // use defaults + // parameter type is String +// headers.put("CamelLinkedIn.fields", null); + // parameter type is String + headers.put("CamelLinkedIn.email_domain", "linkedin.com"); + // parameter type is Boolean +// headers.put("CamelLinkedIn.is_company_admin", null); + + final org.apache.camel.component.linkedin.api.model.Companies result = requestBodyAndHeaders("direct://GETCOMPANIES", null, headers); + + assertNotNull("getCompanies result", result); + LOG.debug("getCompanies: " + result); + } + + @Test + public void testGetCompanyById() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID); + // use default value +/* + // parameter type is String + headers.put("CamelLinkedIn.fields", null); +*/ + + final org.apache.camel.component.linkedin.api.model.Company result = requestBodyAndHeaders("direct://GETCOMPANYBYID", null, headers); + + assertNotNull("getCompanyById result", result); + LOG.debug("getCompanyById: " + result); + } + + @Test + public void testGetCompanyByName() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.universal_name", "linkedin"); + // use default fields +/* + // parameter type is String + headers.put("CamelLinkedIn.fields", null); +*/ + + final org.apache.camel.component.linkedin.api.model.Company result = requestBodyAndHeaders("direct://GETCOMPANYBYNAME", null, headers); + + assertNotNull("getCompanyByName result", result); + LOG.debug("getCompanyByName: " + result); + } + + // TODO provide parameter values for getCompanyUpdateComments + @Ignore + @Test + public void testGetCompanyUpdateComments() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Comments result = requestBodyAndHeaders("direct://GETCOMPANYUPDATECOMMENTS", null, headers); + + assertNotNull("getCompanyUpdateComments result", result); + LOG.debug("getCompanyUpdateComments: " + result); + } + + // TODO provide parameter values for getCompanyUpdateLikes + @Ignore + @Test + public void testGetCompanyUpdateLikes() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Likes result = requestBodyAndHeaders("direct://GETCOMPANYUPDATELIKES", null, headers); + + assertNotNull("getCompanyUpdateLikes result", result); + LOG.debug("getCompanyUpdateLikes: " + result); + } + + @Test + public void testGetCompanyUpdates() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID); + // use defaults +/* + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is org.apache.camel.component.linkedin.api.Eventtype + headers.put("CamelLinkedIn.event_type", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); +*/ + + final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETCOMPANYUPDATES", null, headers); + + assertNotNull("getCompanyUpdates result", result); + LOG.debug("getCompanyUpdates: " + result); + } + + // TODO provide parameter values for getHistoricalFollowStatistics + @Ignore + @Test + public void testGetHistoricalFollowStatistics() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is Long + headers.put("CamelLinkedIn.start_timestamp", null); + // parameter type is Long + headers.put("CamelLinkedIn.end_timestamp", null); + // parameter type is org.apache.camel.component.linkedin.api.Timegranularity + headers.put("CamelLinkedIn.time_granularity", null); + + final org.apache.camel.component.linkedin.api.model.HistoricalFollowStatistics result = requestBodyAndHeaders("direct://GETHISTORICALFOLLOWSTATISTICS", null, headers); + + assertNotNull("getHistoricalFollowStatistics result", result); + LOG.debug("getHistoricalFollowStatistics: " + result); + } + + // TODO provide parameter values for getHistoricalStatusUpdateStatistics + @Ignore + @Test + public void testGetHistoricalStatusUpdateStatistics() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID); + // parameter type is Long + headers.put("CamelLinkedIn.start_timestamp", null); + // parameter type is Long + headers.put("CamelLinkedIn.end_timestamp", null); + // parameter type is org.apache.camel.component.linkedin.api.Timegranularity + headers.put("CamelLinkedIn.time_granularity", null); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + + final org.apache.camel.component.linkedin.api.model.HistoricalStatusUpdateStatistics result = requestBodyAndHeaders("direct://GETHISTORICALSTATUSUPDATESTATISTICS", null, headers); + + assertNotNull("getHistoricalStatusUpdateStatistics result", result); + LOG.debug("getHistoricalStatusUpdateStatistics: " + result); + } + + @Test + public void testGetNumberOfFollowers() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", TEST_COMPANY_ID); + // parameter type is java.util.List + headers.put("CamelLinkedIn.geos", null); + // parameter type is java.util.List + headers.put("CamelLinkedIn.companySizes", null); + // parameter type is java.util.List + headers.put("CamelLinkedIn.jobFunc", null); + // parameter type is java.util.List + headers.put("CamelLinkedIn.industries", null); + // parameter type is java.util.List + headers.put("CamelLinkedIn.seniorities", null); + + final org.apache.camel.component.linkedin.api.model.NumFollowers result = requestBodyAndHeaders("direct://GETNUMBEROFFOLLOWERS", null, headers); + + assertNotNull("getNumberOfFollowers result", result); + LOG.debug("getNumberOfFollowers: " + result); + } + + // TODO provide parameter values for getStatistics + @Ignore + @Test + public void testGetStatistics() throws Exception { + // using long message body for single parameter "company_id" + final org.apache.camel.component.linkedin.api.model.CompanyStatistics result = requestBody("direct://GETSTATISTICS", 0L); + + assertNotNull("getStatistics result", result); + LOG.debug("getStatistics: " + result); + } + + @Test + public void testIsShareEnabled() throws Exception { + // using long message body for single parameter "company_id" + final org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled result = requestBody("direct://ISSHAREENABLED", TEST_COMPANY_ID); + + assertNotNull("isShareEnabled result", result); + LOG.debug("isShareEnabled: " + result); + } + + @Test + public void testIsViewerShareEnabled() throws Exception { + // using long message body for single parameter "company_id" + final org.apache.camel.component.linkedin.api.model.IsCompanyShareEnabled result = requestBody("direct://ISVIEWERSHAREENABLED", TEST_COMPANY_ID); + + assertNotNull("isViewerShareEnabled result", result); + LOG.debug("isViewerShareEnabled: " + result); + } + + // TODO provide parameter values for likeCompanyUpdate + @Ignore + @Test + public void testLikeCompanyUpdate() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.company_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is org.apache.camel.component.linkedin.api.model.IsLiked + headers.put("CamelLinkedIn.isliked", null); + + requestBodyAndHeaders("direct://LIKECOMPANYUPDATE", null, headers); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addCompanyUpdateComment + from("direct://ADDCOMPANYUPDATECOMMENT") + .to("linkedin://" + PATH_PREFIX + "/addCompanyUpdateComment"); + + // test route for addCompanyUpdateCommentAsCompany + from("direct://ADDCOMPANYUPDATECOMMENTASCOMPANY") + .to("linkedin://" + PATH_PREFIX + "/addCompanyUpdateCommentAsCompany"); + + // test route for addShare + from("direct://ADDSHARE") + .to("linkedin://" + PATH_PREFIX + "/addShare"); + + // test route for getCompanies + from("direct://GETCOMPANIES") + .to("linkedin://" + PATH_PREFIX + "/getCompanies"); + + // test route for getCompanyById + from("direct://GETCOMPANYBYID") + .to("linkedin://" + PATH_PREFIX + "/getCompanyById"); + + // test route for getCompanyByName + from("direct://GETCOMPANYBYNAME") + .to("linkedin://" + PATH_PREFIX + "/getCompanyByName"); + + // test route for getCompanyUpdateComments + from("direct://GETCOMPANYUPDATECOMMENTS") + .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdateComments"); + + // test route for getCompanyUpdateLikes + from("direct://GETCOMPANYUPDATELIKES") + .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdateLikes"); + + // test route for getCompanyUpdates + from("direct://GETCOMPANYUPDATES") + .to("linkedin://" + PATH_PREFIX + "/getCompanyUpdates"); + + // test route for getHistoricalFollowStatistics + from("direct://GETHISTORICALFOLLOWSTATISTICS") + .to("linkedin://" + PATH_PREFIX + "/getHistoricalFollowStatistics"); + + // test route for getHistoricalStatusUpdateStatistics + from("direct://GETHISTORICALSTATUSUPDATESTATISTICS") + .to("linkedin://" + PATH_PREFIX + "/getHistoricalStatusUpdateStatistics"); + + // test route for getNumberOfFollowers + from("direct://GETNUMBEROFFOLLOWERS") + .to("linkedin://" + PATH_PREFIX + "/getNumberOfFollowers"); + + // test route for getStatistics + from("direct://GETSTATISTICS") + .to("linkedin://" + PATH_PREFIX + "/getStatistics?inBody=company_id"); + + // test route for isShareEnabled + from("direct://ISSHAREENABLED") + .to("linkedin://" + PATH_PREFIX + "/isShareEnabled?inBody=company_id"); + + // test route for isViewerShareEnabled + from("direct://ISVIEWERSHAREENABLED") + .to("linkedin://" + PATH_PREFIX + "/isViewerShareEnabled?inBody=company_id"); + + // test route for likeCompanyUpdate + from("direct://LIKECOMPANYUPDATE") + .to("linkedin://" + PATH_PREFIX + "/likeCompanyUpdate"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java new file mode 100644 index 0000000..0c7ab84 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/GroupsResourceIntegrationTest.java @@ -0,0 +1,65 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:10 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.GroupsResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.GroupsResource} APIs. + */ +public class GroupsResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(GroupsResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(GroupsResourceApiMethod.class).getName(); + + // TODO provide parameter values for addPost + @Ignore + @Test + public void testAddPost() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.group_id", 0L); + // parameter type is org.apache.camel.component.linkedin.api.model.Post + headers.put("CamelLinkedIn.post", null); + + requestBodyAndHeaders("direct://ADDPOST", null, headers); + } + + // TODO provide parameter values for getGroup + @Ignore + @Test + public void testGetGroup() throws Exception { + // using long message body for single parameter "group_id" + final org.apache.camel.component.linkedin.api.model.Group result = requestBody("direct://GETGROUP", 0L); + + assertNotNull("getGroup result", result); + LOG.debug("getGroup: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addPost + from("direct://ADDPOST") + .to("linkedin://" + PATH_PREFIX + "/addPost"); + + // test route for getGroup + from("direct://GETGROUP") + .to("linkedin://" + PATH_PREFIX + "/getGroup?inBody=group_id"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java new file mode 100644 index 0000000..43cf3c0 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/JobsResourceIntegrationTest.java @@ -0,0 +1,93 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:11 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.JobsResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.JobsResource} APIs. + */ +public class JobsResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(JobsResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(JobsResourceApiMethod.class).getName(); + + // TODO provide parameter values for addJob + @Ignore + @Test + public void testAddJob() throws Exception { + // using org.apache.camel.component.linkedin.api.model.Job message body for single parameter "job" + requestBody("direct://ADDJOB", null); + } + + // TODO provide parameter values for editJob + @Ignore + @Test + public void testEditJob() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.partner_job_id", 0L); + // parameter type is org.apache.camel.component.linkedin.api.model.Job + headers.put("CamelLinkedIn.job", null); + + requestBodyAndHeaders("direct://EDITJOB", null, headers); + } + + // TODO provide parameter values for getJob + @Ignore + @Test + public void testGetJob() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.job_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Job result = requestBodyAndHeaders("direct://GETJOB", null, headers); + + assertNotNull("getJob result", result); + LOG.debug("getJob: " + result); + } + + // TODO provide parameter values for removeJob + @Ignore + @Test + public void testRemoveJob() throws Exception { + // using long message body for single parameter "partner_job_id" + requestBody("direct://REMOVEJOB", 0L); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addJob + from("direct://ADDJOB") + .to("linkedin://" + PATH_PREFIX + "/addJob?inBody=job"); + + // test route for editJob + from("direct://EDITJOB") + .to("linkedin://" + PATH_PREFIX + "/editJob"); + + // test route for getJob + from("direct://GETJOB") + .to("linkedin://" + PATH_PREFIX + "/getJob"); + + // test route for removeJob + from("direct://REMOVEJOB") + .to("linkedin://" + PATH_PREFIX + "/removeJob?inBody=partner_job_id"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java new file mode 100644 index 0000000..53567cf --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PeopleResourceIntegrationTest.java @@ -0,0 +1,636 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:11 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.linkedin.api.model.Person; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.PeopleResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.PeopleResource} APIs. + */ +public class PeopleResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(PeopleResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(PeopleResourceApiMethod.class).getName(); + + // TODO provide parameter values for addActivity + @Ignore + @Test + public void testAddActivity() throws Exception { + // using org.apache.camel.component.linkedin.api.model.Activity message body for single parameter "activity" + requestBody("direct://ADDACTIVITY", null); + } + + // TODO provide parameter values for addGroupMembership + @Ignore + @Test + public void testAddGroupMembership() throws Exception { + // using org.apache.camel.component.linkedin.api.model.GroupMembership message body for single parameter "groupmembership" + requestBody("direct://ADDGROUPMEMBERSHIP", null); + } + + // TODO provide parameter values for addInvite + @Ignore + @Test + public void testAddInvite() throws Exception { + // using org.apache.camel.component.linkedin.api.model.MailboxItem message body for single parameter "mailboxitem" + requestBody("direct://ADDINVITE", null); + } + + // TODO provide parameter values for addJobBookmark + @Ignore + @Test + public void testAddJobBookmark() throws Exception { + // using org.apache.camel.component.linkedin.api.model.JobBookmark message body for single parameter "jobbookmark" + requestBody("direct://ADDJOBBOOKMARK", null); + } + + // TODO provide parameter values for addUpdateComment + @Ignore + @Test + public void testAddUpdateComment() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is org.apache.camel.component.linkedin.api.model.UpdateComment + headers.put("CamelLinkedIn.updatecomment", null); + + requestBodyAndHeaders("direct://ADDUPDATECOMMENT", null, headers); + } + + // TODO provide parameter values for followCompany + @Ignore + @Test + public void testFollowCompany() throws Exception { + // using org.apache.camel.component.linkedin.api.model.Company message body for single parameter "company" + requestBody("direct://FOLLOWCOMPANY", null); + } + + @Test + public void testGetConnections() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // use defaults +/* + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); +*/ + + final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONS", null, headers); + + assertNotNull("getConnections result", result); + LOG.debug("getConnections: " + result); + } + + // TODO provide parameter values for getConnectionsById + @Ignore + @Test + public void testGetConnectionsById() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.person_id", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONSBYID", null, headers); + + assertNotNull("getConnectionsById result", result); + LOG.debug("getConnectionsById: " + result); + } + + // TODO provide parameter values for getConnectionsByUrl + @Ignore + @Test + public void testGetConnectionsByUrl() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.public_profile_url", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Connections result = requestBodyAndHeaders("direct://GETCONNECTIONSBYURL", null, headers); + + assertNotNull("getConnectionsByUrl result", result); + LOG.debug("getConnectionsByUrl: " + result); + } + + @Test + public void testGetFollowedCompanies() throws Exception { + // using String message body for single parameter "fields" + final org.apache.camel.component.linkedin.api.model.Companies result = requestBody("direct://GETFOLLOWEDCOMPANIES", ""); + + assertNotNull("getFollowedCompanies result", result); + LOG.debug("getFollowedCompanies: " + result); + } + + // TODO provide parameter values for getGroupMembershipSettings + @Ignore + @Test + public void testGetGroupMembershipSettings() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.group_id", 0L); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + + final org.apache.camel.component.linkedin.api.model.GroupMemberships result = requestBodyAndHeaders("direct://GETGROUPMEMBERSHIPSETTINGS", null, headers); + + assertNotNull("getGroupMembershipSettings result", result); + LOG.debug("getGroupMembershipSettings: " + result); + } + + @Test + public void testGetGroupMemberships() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // use defaults +/* + // parameter type is org.apache.camel.component.linkedin.api.model.MembershipState + headers.put("CamelLinkedIn.membership_state", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); +*/ + + final org.apache.camel.component.linkedin.api.model.GroupMemberships result = requestBodyAndHeaders("direct://GETGROUPMEMBERSHIPS", null, headers); + + assertNotNull("getGroupMemberships result", result); + LOG.debug("getGroupMemberships: " + result); + } + + @Test + public void testGetJobBookmarks() throws Exception { + final org.apache.camel.component.linkedin.api.model.JobBookmarks result = requestBody("direct://GETJOBBOOKMARKS", null); + + assertNotNull("getJobBookmarks result", result); + LOG.debug("getJobBookmarks: " + result); + } + + @Test + public void testGetNetworkStats() throws Exception { + final org.apache.camel.component.linkedin.api.model.NetworkStats result = requestBody("direct://GETNETWORKSTATS", null); + + assertNotNull("getNetworkStats result", result); + LOG.debug("getNetworkStats: " + result); + } + + @Test + public void testGetNetworkUpdates() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // use defaults +/* + // parameter type is String + headers.put("CamelLinkedIn.scope", null); + // parameter type is org.apache.camel.component.linkedin.api.Type + headers.put("CamelLinkedIn.type", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is Long + headers.put("CamelLinkedIn.after", null); + // parameter type is Long + headers.put("CamelLinkedIn.before", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.show_hidden_members", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); +*/ + + final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETNETWORKUPDATES", null, headers); + + assertNotNull("getNetworkUpdates result", result); + LOG.debug("getNetworkUpdates: " + result); + } + + // TODO provide parameter values for getNetworkUpdatesById + @Ignore + @Test + public void testGetNetworkUpdatesById() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.scope", null); + // parameter type is org.apache.camel.component.linkedin.api.Type + headers.put("CamelLinkedIn.type", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is Long + headers.put("CamelLinkedIn.after", null); + // parameter type is Long + headers.put("CamelLinkedIn.before", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.show_hidden_members", null); + // parameter type is String + headers.put("CamelLinkedIn.person_id", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Updates result = requestBodyAndHeaders("direct://GETNETWORKUPDATESBYID", null, headers); + + assertNotNull("getNetworkUpdatesById result", result); + LOG.debug("getNetworkUpdatesById: " + result); + } + + @Test + public void testGetPerson() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.fields", ""); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", true); + + final Person result = requestBodyAndHeaders("direct://GETPERSON", null, headers); + + assertNotNull("getPerson result", result); + LOG.debug("getPerson: " + result); + } + + // TODO provide parameter values for getPersonById + @Ignore + @Test + public void testGetPersonById() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.person_id", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final Person result = requestBodyAndHeaders("direct://GETPERSONBYID", null, headers); + + assertNotNull("getPersonById result", result); + LOG.debug("getPersonById: " + result); + } + + // TODO provide parameter values for getPersonByUrl + @Ignore + @Test + public void testGetPersonByUrl() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.public_profile_url", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final Person result = requestBodyAndHeaders("direct://GETPERSONBYURL", null, headers); + + assertNotNull("getPersonByUrl result", result); + LOG.debug("getPersonByUrl: " + result); + } + + // TODO provide parameter values for getPosts + @Ignore + @Test + public void testGetPosts() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.group_id", 0L); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is org.apache.camel.component.linkedin.api.Order + headers.put("CamelLinkedIn.order", null); + // parameter type is org.apache.camel.component.linkedin.api.Role + headers.put("CamelLinkedIn.role", null); + // parameter type is org.apache.camel.component.linkedin.api.Category + headers.put("CamelLinkedIn.category", null); + // parameter type is Long + headers.put("CamelLinkedIn.modified_since", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Posts result = requestBodyAndHeaders("direct://GETPOSTS", null, headers); + + assertNotNull("getPosts result", result); + LOG.debug("getPosts: " + result); + } + + @Test + public void testGetSuggestedCompanies() throws Exception { + // using String message body for single parameter "fields" + final org.apache.camel.component.linkedin.api.model.Companies result = requestBody("direct://GETSUGGESTEDCOMPANIES", ""); + + assertNotNull("getSuggestedCompanies result", result); + LOG.debug("getSuggestedCompanies: " + result); + } + + // TODO provide parameter values for getSuggestedGroupPosts + @Ignore + @Test + public void testGetSuggestedGroupPosts() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.group_id", 0L); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is org.apache.camel.component.linkedin.api.Order + headers.put("CamelLinkedIn.order", null); + // parameter type is org.apache.camel.component.linkedin.api.Role + headers.put("CamelLinkedIn.role", null); + // parameter type is org.apache.camel.component.linkedin.api.Category + headers.put("CamelLinkedIn.category", null); + // parameter type is Long + headers.put("CamelLinkedIn.modified_since", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Posts result = requestBodyAndHeaders("direct://GETSUGGESTEDGROUPPOSTS", null, headers); + + assertNotNull("getSuggestedGroupPosts result", result); + LOG.debug("getSuggestedGroupPosts: " + result); + } + + @Test + public void testGetSuggestedGroups() throws Exception { + // using String message body for single parameter "fields" + final org.apache.camel.component.linkedin.api.model.Groups result = requestBody("direct://GETSUGGESTEDGROUPS", ""); + + assertNotNull("getSuggestedGroups result", result); + LOG.debug("getSuggestedGroups: " + result); + } + + @Test + public void testGetSuggestedJobs() throws Exception { + // using String message body for single parameter "fields" + final org.apache.camel.component.linkedin.api.model.JobSuggestions result = requestBody("direct://GETSUGGESTEDJOBS", ""); + + assertNotNull("getSuggestedJobs result", result); + LOG.debug("getSuggestedJobs: " + result); + } + + // TODO provide parameter values for getUpdateComments + @Ignore + @Test + public void testGetUpdateComments() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Comments result = requestBodyAndHeaders("direct://GETUPDATECOMMENTS", null, headers); + + assertNotNull("getUpdateComments result", result); + LOG.debug("getUpdateComments: " + result); + } + + // TODO provide parameter values for getUpdateLikes + @Ignore + @Test + public void testGetUpdateLikes() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + // parameter type is Boolean + headers.put("CamelLinkedIn.secure_urls", null); + + final org.apache.camel.component.linkedin.api.model.Likes result = requestBodyAndHeaders("direct://GETUPDATELIKES", null, headers); + + assertNotNull("getUpdateLikes result", result); + LOG.debug("getUpdateLikes: " + result); + } + + // TODO provide parameter values for likeUpdate + @Ignore + @Test + public void testLikeUpdate() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.update_key", null); + // parameter type is org.apache.camel.component.linkedin.api.model.IsLiked + headers.put("CamelLinkedIn.isliked", null); + + requestBodyAndHeaders("direct://LIKEUPDATE", null, headers); + } + + // TODO provide parameter values for removeGroupMembership + @Ignore + @Test + public void testRemoveGroupMembership() throws Exception { + // using long message body for single parameter "group_id" + requestBody("direct://REMOVEGROUPMEMBERSHIP", 0L); + } + + // TODO provide parameter values for removeGroupSuggestion + @Ignore + @Test + public void testRemoveGroupSuggestion() throws Exception { + // using long message body for single parameter "group_id" + requestBody("direct://REMOVEGROUPSUGGESTION", 0L); + } + + // TODO provide parameter values for removeJobBookmark + @Ignore + @Test + public void testRemoveJobBookmark() throws Exception { + // using long message body for single parameter "job_id" + requestBody("direct://REMOVEJOBBOOKMARK", 0L); + } + + // TODO provide parameter values for share + @Ignore + @Test + public void testShare() throws Exception { + // using org.apache.camel.component.linkedin.api.model.Share message body for single parameter "share" + final org.apache.camel.component.linkedin.api.model.Update result = requestBody("direct://SHARE", null); + + assertNotNull("share result", result); + LOG.debug("share: " + result); + } + + // TODO provide parameter values for stopFollowingCompany + @Ignore + @Test + public void testStopFollowingCompany() throws Exception { + // using long message body for single parameter "company_id" + requestBody("direct://STOPFOLLOWINGCOMPANY", 0L); + } + + // TODO provide parameter values for updateGroupMembership + @Ignore + @Test + public void testUpdateGroupMembership() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelLinkedIn.group_id", 0L); + // parameter type is org.apache.camel.component.linkedin.api.model.GroupMembership + headers.put("CamelLinkedIn.groupmembership", null); + + requestBodyAndHeaders("direct://UPDATEGROUPMEMBERSHIP", null, headers); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addActivity + from("direct://ADDACTIVITY") + .to("linkedin://" + PATH_PREFIX + "/addActivity?inBody=activity"); + + // test route for addGroupMembership + from("direct://ADDGROUPMEMBERSHIP") + .to("linkedin://" + PATH_PREFIX + "/addGroupMembership?inBody=groupmembership"); + + // test route for addInvite + from("direct://ADDINVITE") + .to("linkedin://" + PATH_PREFIX + "/addInvite?inBody=mailboxitem"); + + // test route for addJobBookmark + from("direct://ADDJOBBOOKMARK") + .to("linkedin://" + PATH_PREFIX + "/addJobBookmark?inBody=jobbookmark"); + + // test route for addUpdateComment + from("direct://ADDUPDATECOMMENT") + .to("linkedin://" + PATH_PREFIX + "/addUpdateComment"); + + // test route for followCompany + from("direct://FOLLOWCOMPANY") + .to("linkedin://" + PATH_PREFIX + "/followCompany?inBody=company"); + + // test route for getConnections + from("direct://GETCONNECTIONS") + .to("linkedin://" + PATH_PREFIX + "/getConnections"); + + // test route for getConnectionsById + from("direct://GETCONNECTIONSBYID") + .to("linkedin://" + PATH_PREFIX + "/getConnectionsById"); + + // test route for getConnectionsByUrl + from("direct://GETCONNECTIONSBYURL") + .to("linkedin://" + PATH_PREFIX + "/getConnectionsByUrl"); + + // test route for getFollowedCompanies + from("direct://GETFOLLOWEDCOMPANIES") + .to("linkedin://" + PATH_PREFIX + "/getFollowedCompanies?inBody=fields"); + + // test route for getGroupMembershipSettings + from("direct://GETGROUPMEMBERSHIPSETTINGS") + .to("linkedin://" + PATH_PREFIX + "/getGroupMembershipSettings"); + + // test route for getGroupMemberships + from("direct://GETGROUPMEMBERSHIPS") + .to("linkedin://" + PATH_PREFIX + "/getGroupMemberships"); + + // test route for getJobBookmarks + from("direct://GETJOBBOOKMARKS") + .to("linkedin://" + PATH_PREFIX + "/getJobBookmarks"); + + // test route for getNetworkStats + from("direct://GETNETWORKSTATS") + .to("linkedin://" + PATH_PREFIX + "/getNetworkStats"); + + // test route for getNetworkUpdates + from("direct://GETNETWORKUPDATES") + .to("linkedin://" + PATH_PREFIX + "/getNetworkUpdates"); + + // test route for getNetworkUpdatesById + from("direct://GETNETWORKUPDATESBYID") + .to("linkedin://" + PATH_PREFIX + "/getNetworkUpdatesById"); + + // test route for getPerson + from("direct://GETPERSON") + .to("linkedin://" + PATH_PREFIX + "/getPerson"); + + // test route for getPersonById + from("direct://GETPERSONBYID") + .to("linkedin://" + PATH_PREFIX + "/getPersonById"); + + // test route for getPersonByUrl + from("direct://GETPERSONBYURL") + .to("linkedin://" + PATH_PREFIX + "/getPersonByUrl"); + + // test route for getPosts + from("direct://GETPOSTS") + .to("linkedin://" + PATH_PREFIX + "/getPosts"); + + // test route for getSuggestedCompanies + from("direct://GETSUGGESTEDCOMPANIES") + .to("linkedin://" + PATH_PREFIX + "/getSuggestedCompanies?inBody=fields"); + + // test route for getSuggestedGroupPosts + from("direct://GETSUGGESTEDGROUPPOSTS") + .to("linkedin://" + PATH_PREFIX + "/getSuggestedGroupPosts"); + + // test route for getSuggestedGroups + from("direct://GETSUGGESTEDGROUPS") + .to("linkedin://" + PATH_PREFIX + "/getSuggestedGroups?inBody=fields"); + + // test route for getSuggestedJobs + from("direct://GETSUGGESTEDJOBS") + .to("linkedin://" + PATH_PREFIX + "/getSuggestedJobs?inBody=fields"); + + // test route for getUpdateComments + from("direct://GETUPDATECOMMENTS") + .to("linkedin://" + PATH_PREFIX + "/getUpdateComments"); + + // test route for getUpdateLikes + from("direct://GETUPDATELIKES") + .to("linkedin://" + PATH_PREFIX + "/getUpdateLikes"); + + // test route for likeUpdate + from("direct://LIKEUPDATE") + .to("linkedin://" + PATH_PREFIX + "/likeUpdate"); + + // test route for removeGroupMembership + from("direct://REMOVEGROUPMEMBERSHIP") + .to("linkedin://" + PATH_PREFIX + "/removeGroupMembership?inBody=group_id"); + + // test route for removeGroupSuggestion + from("direct://REMOVEGROUPSUGGESTION") + .to("linkedin://" + PATH_PREFIX + "/removeGroupSuggestion?inBody=group_id"); + + // test route for removeJobBookmark + from("direct://REMOVEJOBBOOKMARK") + .to("linkedin://" + PATH_PREFIX + "/removeJobBookmark?inBody=job_id"); + + // test route for share + from("direct://SHARE") + .to("linkedin://" + PATH_PREFIX + "/share?inBody=share"); + + // test route for stopFollowingCompany + from("direct://STOPFOLLOWINGCOMPANY") + .to("linkedin://" + PATH_PREFIX + "/stopFollowingCompany?inBody=company_id"); + + // test route for updateGroupMembership + from("direct://UPDATEGROUPMEMBERSHIP") + .to("linkedin://" + PATH_PREFIX + "/updateGroupMembership"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/b490a90c/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java new file mode 100644 index 0000000..5f79673 --- /dev/null +++ b/components/camel-linkedin/camel-linkedin-component/src/test/java/org/apache/camel/component/linkedin/PostsResourceIntegrationTest.java @@ -0,0 +1,162 @@ +/* + * Camel Api Route test generated by camel-component-util-maven-plugin + * Generated on: Wed Jul 09 19:57:11 PDT 2014 + */ +package org.apache.camel.component.linkedin; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.camel.component.linkedin.internal.LinkedInApiCollection; +import org.apache.camel.component.linkedin.internal.PostsResourceApiMethod; + +/** + * Test class for {@link org.apache.camel.component.linkedin.api.PostsResource} APIs. + */ +public class PostsResourceIntegrationTest extends AbstractLinkedInTestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(PostsResourceIntegrationTest.class); + private static final String PATH_PREFIX = LinkedInApiCollection.getCollection().getApiName(PostsResourceApiMethod.class).getName(); + + // TODO provide parameter values for addComment + @Ignore + @Test + public void testAddComment() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is org.apache.camel.component.linkedin.api.model.Comment + headers.put("CamelLinkedIn.comment", null); + + requestBodyAndHeaders("direct://ADDCOMMENT", null, headers); + } + + // TODO provide parameter values for flagCategory + @Ignore + @Test + public void testFlagCategory() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is org.apache.camel.component.linkedin.api.model.PostCategoryCode + headers.put("CamelLinkedIn.postcategorycode", null); + + requestBodyAndHeaders("direct://FLAGCATEGORY", null, headers); + } + + // TODO provide parameter values for followPost + @Ignore + @Test + public void testFollowPost() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is org.apache.camel.component.linkedin.api.model.IsFollowing + headers.put("CamelLinkedIn.isfollowing", null); + + requestBodyAndHeaders("direct://FOLLOWPOST", null, headers); + } + + // TODO provide parameter values for getPost + @Ignore + @Test + public void testGetPost() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Post result = requestBodyAndHeaders("direct://GETPOST", null, headers); + + assertNotNull("getPost result", result); + LOG.debug("getPost: " + result); + } + + // TODO provide parameter values for getPostComments + @Ignore + @Test + public void testGetPostComments() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is Long + headers.put("CamelLinkedIn.count", null); + // parameter type is Long + headers.put("CamelLinkedIn.start", null); + // parameter type is String + headers.put("CamelLinkedIn.fields", null); + + final org.apache.camel.component.linkedin.api.model.Comments result = requestBodyAndHeaders("direct://GETPOSTCOMMENTS", null, headers); + + assertNotNull("getPostComments result", result); + LOG.debug("getPostComments: " + result); + } + + // TODO provide parameter values for likePost + @Ignore + @Test + public void testLikePost() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelLinkedIn.post_id", null); + // parameter type is org.apache.camel.component.linkedin.api.model.IsLiked + headers.put("CamelLinkedIn.isliked", null); + + requestBodyAndHeaders("direct://LIKEPOST", null, headers); + } + + // TODO provide parameter values for removePost + @Ignore + @Test + public void testRemovePost() throws Exception { + // using String message body for single parameter "post_id" + requestBody("direct://REMOVEPOST", null); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addComment + from("direct://ADDCOMMENT") + .to("linkedin://" + PATH_PREFIX + "/addComment"); + + // test route for flagCategory + from("direct://FLAGCATEGORY") + .to("linkedin://" + PATH_PREFIX + "/flagCategory"); + + // test route for followPost + from("direct://FOLLOWPOST") + .to("linkedin://" + PATH_PREFIX + "/followPost"); + + // test route for getPost + from("direct://GETPOST") + .to("linkedin://" + PATH_PREFIX + "/getPost"); + + // test route for getPostComments + from("direct://GETPOSTCOMMENTS") + .to("linkedin://" + PATH_PREFIX + "/getPostComments"); + + // test route for likePost + from("direct://LIKEPOST") + .to("linkedin://" + PATH_PREFIX + "/likePost"); + + // test route for removePost + from("direct://REMOVEPOST") + .to("linkedin://" + PATH_PREFIX + "/removePost?inBody=post_id"); + + } + }; + } +}