Skip to content

Commit 006e8af

Browse files
committed
feat: KplOutboundChannelAdapterParserTest
1 parent 04ed105 commit 006e8af

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package org.springframework.integration.aws.config.xml;
2+
3+
import com.amazonaws.services.kinesis.producer.KinesisProducer;
4+
import org.junit.jupiter.api.Test;
5+
import org.mockito.Mock;
6+
import org.mockito.MockedConstruction.Context;
7+
import org.springframework.integration.aws.outbound.KplMessageHandler;
8+
import org.springframework.integration.junit.ConstructionMock;
9+
import org.springframework.integration.mapping.OutboundMessageMapper;
10+
import org.springframework.messaging.converter.MessageConverter;
11+
12+
import java.time.Duration;
13+
14+
import static org.assertj.core.api.Assertions.assertThat;
15+
16+
class KplOutboundChannelAdapterParserTest extends ParserTestBase {
17+
18+
@Mock
19+
private KinesisProducer kinesisProducer;
20+
21+
@Mock
22+
private OutboundMessageMapper<byte[]> messageMapper;
23+
24+
@Mock
25+
private MessageConverter messageConverter;
26+
27+
@ConstructionMock(KplMessageHandler.class)
28+
@Test
29+
void testMessageHandler() {
30+
registerBean("kp", KinesisProducer.class, kinesisProducer);
31+
registerBean("ehm", OutboundMessageMapper.class, messageMapper);
32+
registerBean("mc", MessageConverter.class, messageConverter);
33+
34+
var handler = loadBean(KplMessageHandler.class, """
35+
<int-aws:kpl-outbound-channel-adapter kinesis-producer="kp"
36+
id="i"
37+
channel="c"
38+
stream="s"
39+
async="#{true}"
40+
embedded-headers-mapper="ehm"
41+
explicit-hash-key="hk"
42+
message-converter="mc"
43+
order="#{5}"
44+
output-channel="out"
45+
partition-key="pk"
46+
send-timeout="#{50}"
47+
flush-duration="#{50}"
48+
glue-schema-expression="payload.schema"
49+
sequence-number-expression="headers.exp"/>
50+
""");
51+
52+
verify(handler).setStream("s");
53+
verify(handler).setAsync(true);
54+
verify(handler).setEmbeddedHeadersMapper(messageMapper);
55+
verify(handler).setExplicitHashKey("hk");
56+
verify(handler).setMessageConverter(messageConverter);
57+
verify(handler).setOrder(5);
58+
verify(handler).setOutputChannelName("out");
59+
verify(handler).setPartitionKey("pk");
60+
verify(handler).setSendTimeout(50);
61+
verify(handler).setFlushDuration(Duration.ofMillis(50));
62+
verify(handler).setGlueSchemaExpressionString("payload.schema");
63+
verify(handler).setSequenceNumberExpressionString("headers.exp");
64+
}
65+
66+
void testMessageHandler(KplMessageHandler mock, Context context) {
67+
assertThat(context.arguments())
68+
.singleElement().isSameAs(kinesisProducer);
69+
}
70+
}

0 commit comments

Comments
 (0)