Spring Cloud Stream, как проверить пользовательский источник и вывод?
public interface DeviceManagerOutput {
String OUTPUT = "deviceManager";
@Output( DeviceManagerOutput.OUTPUT )
MessageChannel output();
}
@Service
@EnableBinding( DeviceManagerOutput.class )
@RequiredArgsConstructor
public class DeviceManagerSink {
private final DeviceManagerOutput source;
@ServiceActivator( outputChannel = DeviceManagerOutput.OUTPUT )
@LogName
public void sendDeviceManagerUpdate( String message ) {
source.output().send( new GenericMessage<>( message ) )
}
}
MessageSender.java
@Slf4j
@Service
@RequiredArgsConstructor
public class MessageSender {
private final DeviceManagerSink deviceManagerSink;
public void sendMessage(String message) {
route(message);
}
@Override
@LogName
public void route( String message ) {
log.info( "Ingoring the Source provide.. using another source for configuration message.." );
this.deviceManagerSink.sendDeviceManagerUpdate( message );
}
}
Как проверить, успешен или нет вызов метода отправки MessageChannel?
Тестовый класс
@RunWith( MockitoJUnitRunner.class )
public class MessageSenderTest {
@Mock
private MessageSender messageSender;
@Mock
private DeviceManagerSink deviceManagerSink;
@Test
public void test_route_message() {
this.messageSender.sendMessage("Hi");
verify( deviceManagerSink, times( 1 ) ).sendDeviceManagerUpdate( any() ); // gives success
}
внутри sendDeviceManagerUpdate мы вызываем метод отправки DeviceManagerOutput.Как проверить, успешен или нет метод вызова для отправки?