Spring Cloud Stream, как проверить пользовательский источник и вывод - PullRequest
0 голосов
/ 16 октября 2018

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.Как проверить, успешен или нет метод вызова для отправки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...