Example usage for org.springframework.integration.test.util TestUtils getPropertyValue

List of usage examples for org.springframework.integration.test.util TestUtils getPropertyValue

Introduction

In this page you can find the example usage for org.springframework.integration.test.util TestUtils getPropertyValue.

Prototype

@SuppressWarnings("unchecked")
public static <T> T getPropertyValue(Object root, String propertyPath, Class<T> type) 

Source Link

Document

Obtain a value for the property from the provide object and try to cast it to the provided type.

Usage

From source file:sipackage.config.xml.SIAdapterUpperPrefixMessageHandlerParserTests.java

@Test
public void testMessageHandlerParser() throws Exception {
    setUp("SIAdapterUpperPrefixMessageHandlerParserTests.xml", getClass());

    final AbstractMessageChannel inputChannel = TestUtils.getPropertyValue(this.consumer, "inputChannel",
            AbstractMessageChannel.class);

    assertEquals("target", inputChannel.getComponentName());

    final SIAdapterUpperPrefixExecutor siAdapterLowerPrefixExecutor = TestUtils.getPropertyValue(this.consumer,
            "handler.siAdapterLowerPrefixExecutor", SIAdapterUpperPrefixExecutor.class);

    assertNotNull(siAdapterLowerPrefixExecutor);

    final String exsampleProperty = TestUtils.getPropertyValue(siAdapterLowerPrefixExecutor, "exampleProperty",
            String.class);

    assertEquals("I am a sample property", exsampleProperty);

}

From source file:sipackage.config.xml.SIAdapterUpperPrefixOutboundGatewayParserTests.java

@Test
public void testOutboundGatewayParser() throws Exception {
    setUp("SIAdapterUpperPrefixOutboundGatewayParserTests.xml", getClass(),
            "siAdapterLowerPrefixOutboundGateway");

    final AbstractMessageChannel inputChannel = TestUtils.getPropertyValue(this.consumer, "inputChannel",
            AbstractMessageChannel.class);

    assertEquals("in", inputChannel.getComponentName());

    final SIAdapterUpperPrefixOutboundGateway siAdapterLowerPrefixOutboundGateway = TestUtils
            .getPropertyValue(this.consumer, "handler", SIAdapterUpperPrefixOutboundGateway.class);

    long sendTimeout = TestUtils.getPropertyValue(siAdapterLowerPrefixOutboundGateway,
            "messagingTemplate.sendTimeout", Long.class);

    assertEquals(100, sendTimeout);//  w ww. jav  a 2 s.com

    final SIAdapterUpperPrefixExecutor siAdapterLowerPrefixExecutor = TestUtils.getPropertyValue(this.consumer,
            "handler.siAdapterLowerPrefixExecutor", SIAdapterUpperPrefixExecutor.class);

    assertNotNull(siAdapterLowerPrefixExecutor);

    final String exsampleProperty = TestUtils.getPropertyValue(siAdapterLowerPrefixExecutor, "exampleProperty",
            String.class);

    assertEquals("I am a sample property", exsampleProperty);

}

From source file:sipackage.config.xml.SIAdapterUpperPrefixInboundChannelAdapterParserTests.java

@Test
public void testInboundChannelAdapterParser() throws Exception {

    setUp("SIAdapterUpperPrefixInboundChannelAdapterParserTests.xml", getClass(),
            "siAdapterLowerPrefixInboundChannelAdapter");

    final AbstractMessageChannel outputChannel = TestUtils.getPropertyValue(this.consumer, "outputChannel",
            AbstractMessageChannel.class);

    assertEquals("out", outputChannel.getComponentName());

    final SIAdapterUpperPrefixExecutor siAdapterLowerPrefixExecutor = TestUtils.getPropertyValue(this.consumer,
            "source.siAdapterLowerPrefixExecutor", SIAdapterUpperPrefixExecutor.class);

    assertNotNull(siAdapterLowerPrefixExecutor);

    final String exsampleProperty = TestUtils.getPropertyValue(siAdapterLowerPrefixExecutor, "exampleProperty",
            String.class);

    assertEquals("I am a sample property", exsampleProperty);

}

From source file:com.bigdata.log.LogSinkApplicationTests.java

@Test
public void test() {
    assertNotNull(this.sink.input());
    assertEquals(CustomLoggingHandler.Level.WARN, this.logSinkHandler.getLevel());
    Log logger = TestUtils.getPropertyValue(this.logSinkHandler, "messageLogger", Log.class);
    assertEquals("foo", TestUtils.getPropertyValue(logger, "name"));
    logger = spy(logger);/*from   ww  w.j a  va2  s  . c  o m*/
    new DirectFieldAccessor(this.logSinkHandler).setPropertyValue("messageLogger", logger);
    GenericMessage<String> message = new GenericMessage<>("foo");
    this.sink.input().send(message);
    ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
    verify(logger).warn(captor.capture());
    assertEquals("customized message for sample : FOO", captor.getValue());
    this.logSinkHandler.setExpression("#this");
    this.sink.input().send(message);
    verify(logger, times(2)).warn(captor.capture());
    //      assertSame(message, captor.getValue());
}

From source file:org.springframework.cloud.stream.app.log.sink.LogSinkApplicationTests.java

private void testMessage(Message<byte[]> message, String expectedPayload) {
    assertNotNull(this.sink.input());
    assertEquals(LoggingHandler.Level.WARN, this.logSinkHandler.getLevel());
    Log logger = TestUtils.getPropertyValue(this.logSinkHandler, "messageLogger", Log.class);
    assertEquals("foo", TestUtils.getPropertyValue(logger, "logger.name"));
    logger = spy(logger);//from  w ww  .jav a2 s  . c om
    new DirectFieldAccessor(this.logSinkHandler).setPropertyValue("messageLogger", logger);
    this.sink.input().send(message);
    ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
    verify(logger).warn(captor.capture());
    assertEquals(expectedPayload.toUpperCase(), captor.getValue());
    this.logSinkHandler.setLogExpressionString("#this");
    this.sink.input().send(message);
    verify(logger, times(2)).warn(captor.capture());

    Message captorMessage = (Message) captor.getAllValues().get(2);
    assertEquals("Unexpected payload value", expectedPayload, captorMessage.getPayload());

    MessageHeaders messageHeaders = captorMessage.getHeaders();
    assertEquals("Unexpected number of headers", 3, messageHeaders.size());

    String[] headers = { "contentType" };

    for (String header : headers) {
        assertTrue("Missing " + header + " header", messageHeaders.containsKey(header));
        assertEquals("Header " + header + " does not match", messageHeaders.get(header),
                message.getHeaders().get(header));
    }
}

From source file:org.springframework.cloud.stream.app.throughput.sink.ThroughputSinkTests.java

@Test
public void testSink() throws Exception {
    assertNotNull(this.sink.input());
    this.sink.input().send(new GenericMessage<>("foo"));
    Log logger = spy(TestUtils.getPropertyValue(this.configuration, "logger", Log.class));
    new DirectFieldAccessor(this.configuration).setPropertyValue("logger", logger);
    final CountDownLatch latch = new CountDownLatch(1);
    doAnswer(new Answer<Void>() {

        @Override/*from w w  w .j  a v  a  2  s  .  com*/
        public Void answer(InvocationOnMock invocation) throws Throwable {
            invocation.callRealMethod();
            latch.countDown();
            return null;
        }

    }).when(logger).info(anyString());
    assertTrue(latch.await(10, TimeUnit.SECONDS));
}

From source file:org.springframework.cloud.stream.module.log.LogSinkApplicationTests.java

@Test
public void test() {
    assertNotNull(this.sink.input());
    assertEquals(LoggingHandler.Level.WARN, this.logSinkHandler.getLevel());
    Log logger = TestUtils.getPropertyValue(this.logSinkHandler, "messageLogger", Log.class);
    assertEquals("foo", TestUtils.getPropertyValue(logger, "name"));
    logger = spy(logger);/*from w  ww .j a va2 s.  c o m*/
    new DirectFieldAccessor(this.logSinkHandler).setPropertyValue("messageLogger", logger);
    GenericMessage<String> message = new GenericMessage<>("foo");
    this.sink.input().send(message);
    ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class);
    verify(logger).warn(captor.capture());
    assertEquals("FOO", captor.getValue());
    this.logSinkHandler.setExpression("#this");
    this.sink.input().send(message);
    verify(logger, times(2)).warn(captor.capture());
    assertSame(message, captor.getValue());
}

From source file:org.springframework.integration.aggregator.BarrierMessageHandlerTests.java

@Test
public void testRequestBeforeReply() throws Exception {
    final BarrierMessageHandler handler = new BarrierMessageHandler(10000);
    QueueChannel outputChannel = new QueueChannel();
    handler.setOutputChannel(outputChannel);
    handler.setBeanFactory(mock(BeanFactory.class));
    handler.afterPropertiesSet();//from  w w w.ja  v  a  2s . c om
    final AtomicReference<Exception> dupCorrelation = new AtomicReference<Exception>();
    final CountDownLatch latch = new CountDownLatch(1);
    Runnable runnable = () -> {
        try {
            handler.handleMessage(MessageBuilder.withPayload("foo").setCorrelationId("foo").build());
        } catch (MessagingException e) {
            dupCorrelation.set(e);
        }
        latch.countDown();
    };
    ExecutorService exec = Executors.newCachedThreadPool();
    exec.execute(runnable);
    exec.execute(runnable);
    Map<?, ?> suspensions = TestUtils.getPropertyValue(handler, "suspensions", Map.class);
    int n = 0;
    while (n++ < 100 && suspensions.size() == 0) {
        Thread.sleep(100);
    }
    Map<?, ?> inProcess = TestUtils.getPropertyValue(handler, "inProcess", Map.class);
    assertEquals(1, inProcess.size());
    assertTrue("suspension did not appear in time", n < 100);
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    assertNotNull(dupCorrelation.get());
    assertThat(dupCorrelation.get().getMessage(), startsWith("Correlation key (foo) is already in use by"));
    handler.trigger(MessageBuilder.withPayload("bar").setCorrelationId("foo").build());
    Message<?> received = outputChannel.receive(10000);
    assertNotNull(received);
    List<?> result = (List<?>) received.getPayload();
    assertEquals("foo", result.get(0));
    assertEquals("bar", result.get(1));
    assertEquals(0, suspensions.size());
    assertEquals(0, inProcess.size());
}

From source file:org.springframework.integration.aggregator.BarrierMessageHandlerTests.java

@Test
public void testReplyBeforeRequest() throws Exception {
    final BarrierMessageHandler handler = new BarrierMessageHandler(10000);
    QueueChannel outputChannel = new QueueChannel();
    handler.setOutputChannel(outputChannel);
    handler.setBeanFactory(mock(BeanFactory.class));
    handler.afterPropertiesSet();//from  www. j  av a  2s . c  o m
    Executors.newSingleThreadExecutor()
            .execute(() -> handler.trigger(MessageBuilder.withPayload("bar").setCorrelationId("foo").build()));
    Map<?, ?> suspensions = TestUtils.getPropertyValue(handler, "suspensions", Map.class);
    int n = 0;
    while (n++ < 100 && suspensions.size() == 0) {
        Thread.sleep(100);
    }
    assertTrue("suspension did not appear in time", n < 100);
    handler.handleMessage(MessageBuilder.withPayload("foo").setCorrelationId("foo").build());
    Message<?> received = outputChannel.receive(10000);
    assertNotNull(received);
    List<?> result = (ArrayList<?>) received.getPayload();
    assertEquals("foo", result.get(0));
    assertEquals("bar", result.get(1));
    assertEquals(0, suspensions.size());
}

From source file:org.springframework.integration.aggregator.BarrierMessageHandlerTests.java

@Test
public void testLateReply() throws Exception {
    final BarrierMessageHandler handler = new BarrierMessageHandler(0);
    QueueChannel outputChannel = new QueueChannel();
    QueueChannel discardChannel = new QueueChannel();
    handler.setOutputChannel(outputChannel);
    handler.setDiscardChannelName("discards");
    handler.setChannelResolver(s -> discardChannel);
    handler.setBeanFactory(mock(BeanFactory.class));
    handler.afterPropertiesSet();/* w ww .j  ava 2  s .  c o  m*/
    final CountDownLatch latch = new CountDownLatch(1);
    Executors.newSingleThreadExecutor().execute(() -> {
        handler.handleMessage(MessageBuilder.withPayload("foo").setCorrelationId("foo").build());
        latch.countDown();
    });
    Map<?, ?> suspensions = TestUtils.getPropertyValue(handler, "suspensions", Map.class);
    assertTrue(latch.await(10, TimeUnit.SECONDS));
    assertEquals("suspension not removed", 0, suspensions.size());
    Log logger = spy(TestUtils.getPropertyValue(handler, "logger", Log.class));
    new DirectFieldAccessor(handler).setPropertyValue("logger", logger);
    final Message<String> triggerMessage = MessageBuilder.withPayload("bar").setCorrelationId("foo").build();
    handler.trigger(triggerMessage);
    ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
    verify(logger).error(captor.capture());
    assertThat(captor.getValue(),
            allOf(containsString("Suspending thread timed out or did not arrive within timeout for:"),
                    containsString("payload=bar")));
    assertEquals(0, suspensions.size());
    Message<?> discard = discardChannel.receive(0);
    assertSame(discard, triggerMessage);
    handler.handleMessage(MessageBuilder.withPayload("foo").setCorrelationId("foo").build());
    assertEquals(0, suspensions.size());
}