[
https://issues.apache.org/jira/browse/CXF-8003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16799211#comment-16799211
]
Andriy Redko commented on CXF-8003:
-----------------------------------
[~Oneping] this has nothing to do with mocking actually, when you use oneway
methods (which return void), CXF does run them asynchronously. You may see
{noformat}
TEST BEAN: null{noformat}
In case when test case is finished but the method is being executing (in this
case, there is no mocks configured anymore). The simplest solution(s) I can
think of is to:
1) Add some delay
{noformat}
helloWorldClient.sayHello("John", "Doe");
Thread.sleep(100);{noformat}
2) Or better, use [https://github.com/awaitility/awaitility] with any suitable
primitives to make sure the callSoapClient() was called:
{noformat}
final CountDownLatch latch = new CountDownLatch(1);
when(mockService.callSoapClient()).thenAnswer(invocation -> {
latch.countDown();
return new String("CallMockClient_testSayHello");
});
helloWorldClient.sayHello("John", "Doe");
latch.await(1, TimeUnit.SECONDS);{noformat}
> @MockBean issue in cxf-spring-boot-starter-jaxws
> ------------------------------------------------
>
> Key: CXF-8003
> URL: https://issues.apache.org/jira/browse/CXF-8003
> Project: CXF
> Issue Type: Bug
> Reporter: Tsvetoslav
> Priority: Minor
> Attachments: cxf-jaxws-spring-boot-new.zip, image (1).png,
> image-2019-03-22-15-30-26-348.png, image-2019-03-22-15-30-49-153.png
>
>
> Hi,
>
> I'm creating Soap web service using wsdl2java plugin. I use
> cxf-spring-boot-starter-jaxws dependency which gives me an opportunity to
> create the service using both frameworks Apache-cxf and Spring boot. When I
> was developing my Integration tests, I faced an issue which blocks my work.
> I've created a component which is client to another service. This component
> has been @Autowired in my Implementation class. In my test I would like to
> mock this component because during the build I don't want to have real call
> to the service. For some reason when the Implementation method is from *void*
> return type, the Mocking doesn't work properly.
> I attached you a Screenshot from my test and implementation class.
> Here is the log from the execution:
> 11:09:09.697 [http-nio-9091-exec-1] INFO c.i.es2.endpoint.SmDpES2PortImpl -
> Executing operation es2GetEIS
> 11:09:09.698 [http-nio-9091-exec-1] INFO c.i.es2.endpoint.SmDpES2PortImpl -
> *TEST BEAN: CallMockClient_ES2GetEis*
> ----
> 11:09:09.733 [default-workqueue-1] INFO c.i.es2.endpoint.SmDpES2PortImpl -
> Executing operation es2DownloadProfile
> 11:09:09.734 [default-workqueue-1] INFO c.i.es2.endpoint.SmDpES2PortImpl -
> *TEST BEAN: null*
> I hope you can help me out for the problem.
> Thank you in advance!
>
> PS: I tested with different dependencies version and hit the same issue
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)