Skip to content

Commit ab34b79

Browse files
committed
test: SnsInboundChannelAdapterParserTest
1 parent cec1779 commit ab34b79

File tree

3 files changed

+56
-4
lines changed

3 files changed

+56
-4
lines changed

int-aws/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ plugins {
55
dependencies {
66
api "org.springframework.integration:spring-integration-aws"
77

8+
compileOnly "com.amazonaws:amazon-kinesis-producer:0.15.12"
89
compileOnly "io.awspring.cloud:spring-cloud-aws-s3"
910
compileOnly "io.awspring.cloud:spring-cloud-aws-sns"
1011
compileOnly "io.awspring.cloud:spring-cloud-aws-sqs"
11-
compileOnly "org.springframework.integration:spring-integration-file"
1212
compileOnly "org.springframework.integration:spring-integration-http"
13-
compileOnly "software.amazon.awssdk:s3-transfer-manager"
13+
compileOnly "org.springframework.integration:spring-integration-file"
1414
compileOnly "software.amazon.kinesis:amazon-kinesis-client:2.6.0"
15-
compileOnly "com.amazonaws:amazon-kinesis-producer:0.15.12"
1615

1716
testImplementation "io.github.boolivar:mockito-inline-extension"
17+
18+
testRuntimeOnly "software.amazon.awssdk:s3-transfer-manager"
19+
testRuntimeOnly "jakarta.servlet:jakarta.servlet-api:6.1.0"
1820
}

int-aws/src/main/java/org/springframework/integration/aws/config/xml/parsers/SnsInboundChannelAdapterParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ protected AbstractBeanDefinition doParse(Element element, ParserContext parserCo
2020
.setPropertyIfAttributeDefined("error-channel", "errorChannelName")
2121
.setPropertyIfAttributeDefined("payload-expression", "payloadExpression", ValueFactory.expressionBean())
2222
.getBeanDefinitionBuilder()
23-
.addPropertyReference("requestChannelName", channelName)
23+
.addPropertyValue("requestChannelName", channelName)
2424
.getBeanDefinition();
2525
}
2626
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.springframework.integration.aws.config.xml.parsers;
2+
3+
import org.bool.junit.mockito.inline.ConstructionMock;
4+
5+
import org.assertj.core.api.InstanceOfAssertFactories;
6+
import org.junit.jupiter.api.Test;
7+
import org.mockito.Mock;
8+
import org.mockito.MockedConstruction.Context;
9+
import org.springframework.integration.aws.inbound.SnsInboundChannelAdapter;
10+
import software.amazon.awssdk.services.sns.SnsClient;
11+
12+
import static org.assertj.core.api.Assertions.assertThat;
13+
14+
class SnsInboundChannelAdapterParserTest extends ParserTestBase {
15+
16+
@Mock
17+
private SnsClient sns;
18+
19+
@ConstructionMock(SnsInboundChannelAdapter.class)
20+
@Test
21+
void testAdapter() {
22+
registerBean("sns", SnsClient.class, sns);
23+
24+
var adapter = loadBean(SnsInboundChannelAdapter.class, """
25+
<int-aws:sns-inbound-channel-adapter
26+
auto-startup="#{false}"
27+
id="snsica"
28+
channel="c"
29+
sns="sns"
30+
path="/sns/{id},/sns/action/*.do"
31+
error-channel="ec"
32+
payload-expression="pe.exp"
33+
handle-notification-status="#{true}"
34+
send-timeout="#{50}"/>
35+
""");
36+
37+
verify(adapter).setBeanName("snsica");
38+
verify(adapter).setAutoStartup(false);
39+
verify(adapter).setRequestChannelName("c");
40+
verify(adapter).setErrorChannelName("ec");
41+
verify(adapter).setPayloadExpression(argThat(e -> "pe.exp".equals(e.getExpressionString())));
42+
verify(adapter).setHandleNotificationStatus(true);
43+
verify(adapter).setRequestTimeout(50L);
44+
}
45+
46+
void testAdapter(SnsInboundChannelAdapter mock, Context context) {
47+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
48+
.contains(sns, new String[] {"/sns/{id}", "/sns/action/*.do"});
49+
}
50+
}

0 commit comments

Comments
 (0)