'doAnswer method is not calling in mockito
I am trying to mock the success block in addCallBack of ListenableFutureCallback.class .but doAnswer method is not calling in the Test class.
public void publish(String topicName,Object object) throws Exception {
ListenableFuture<SendResult> result = kafkaMessageSender.send(topicName,object);
result.addCallBack(
s -> {
System.out.println("addCallBack..");
RecordMetadata r= s.getRecordMetadata();
RecordMetadata p= s.getProducerRecord();
},
f -> {
System.out.println("failure..");
});
}
@Test
public void publishEvent()
{
KafkMessageSender kafkMessageSender=Mockito.mock(KafkMessageSender.class);
SendResult sendResult=Mockito.mock(SendResult.class);
ListenableFuture listenablFuture=Mockito.mock(ListenableFuture.class);
Mockito.when(kafkMessageSender.send(Mockito.anyString(),Mockito.any(Object.class)).thenReturn(listenablFuture);
Mockito.doAnswer(invocation -> {
System.out.println("doAnswer..");
ListenableFutureCallback<SendResult> listenableFutureCallback=invocation.getArgument(0,ListenableFutureCallback.class);
listenableFutureCallback.onSuccess(sendResult);
return null;
}).when(listenablFuture).addCallBack(Mockito.any(ListenableFutureCallback.class));
publisher.publish("sampletopic","test");
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
