[ https://issues.apache.org/jira/browse/CAMEL-13766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16897883#comment-16897883 ]
Hemang Ajmera commented on CAMEL-13766: --------------------------------------- [~davsclaus] any clue on this one? > Salesforce component Mocking does not work correctly > ---------------------------------------------------- > > Key: CAMEL-13766 > URL: https://issues.apache.org/jira/browse/CAMEL-13766 > Project: Camel > Issue Type: Bug > Components: camel-salesforce, camel-test > Affects Versions: 2.24.0 > Reporter: Hemang Ajmera > Priority: Minor > Attachments: CAMEL-13766-Code.zip, camel-13766.log.zip > > > In my unit test, I am replacing salesfoce component with a mock. However, > still the component is getting activated with being replace with mock. > Because of this test case fails in our Jenkins environment as from Jenkins > server, there is no connectivity to salesforce. > > Here is the part of unit test code > {code:java} > @EndpointInject(uri = "mock:salesforce:query") > private MockEndpoint sfMock; > String sfResponse = "{}"; // Expected response value from SF > RouteDefinition mainRoute = context.getRouteDefinition("main-route"); > mainRoute.adviceWith(context, new AdviceWithRouteBuilder(){ > > @Override > public void configure() throws Exception { > mockEndpointsAndSkip("salesforce.*"); > } > }); > sfMock.whenAnyExchangeReceived(new Processor(){ > @Override > public void process(Exchange exchange) throws Exception { > exchange.getIn().setBody(sfResponse); > } > });{code} > Here is the logs in my local machine > > {quote} > 2019-07-18 13:43:42.719 INFO 4288 --- [ main] > org.eclipse.jetty.util.log : Logging initialized @22433ms to > org.eclipse.jetty.util.log.Slf4jLog}} > {{2019-07-18 13:43:42.890 INFO 4288 --- [ main] > o.a.c.util.jsse.SSLContextParameters : Available providers: SUN version > 1.8.}} > {{2019-07-18 13:43:43.608 INFO 4288 --- [ main] > o.a.c.c.s.internal.SalesforceSession : Login at Salesforce loginUrl: > https://test.salesforce.com/services/oauth2/token}} > {{2019-07-18 13:43:46.514 INFO 4288 --- [ main] > o.a.c.c.s.internal.SalesforceSession : Login successful}} > {{2019-07-18 13:43:46.519 INFO 4288 --- [ main] > o.a.c.c.salesforce.SalesforceComponent : Found 0 generated classes in > packages: [org.apache.camel.salesforce.dto]}} > {{2019-07-18 13:43:46.523 INFO 4288 --- [ main] > .c.i.InterceptSendToMockEndpointStrategy : Adviced endpoint > [salesforce://query?format=JSON&rawPayload=true&sObjectQuery=SELECT+Id%2C+OwnerId%2CLastModifiedById%2CLastModifiedDate+FROM+Account+WHERE+Id+IN%28%27abcd%27%29] > with mock endpoint [mock:salesforce:query] > {quote} > We can clearly see the component is initiated first and then replaced with > mock. The idea of replacing with mock is that we should be able to test even > if component cannot be initiated. -- This message was sent by Atlassian JIRA (v7.6.14#76016)