Skip to content

Commit 610a2a3

Browse files
committed
test: S3InboundStreamingChannelAdapterParserTest
1 parent f1fe502 commit 610a2a3

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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.S3StreamingMessageSource;
10+
import org.springframework.integration.aws.support.S3RemoteFileTemplate;
11+
import org.springframework.integration.aws.support.S3SessionFactory;
12+
import org.springframework.integration.file.filters.CompositeFileListFilter;
13+
import software.amazon.awssdk.services.s3.model.S3Object;
14+
15+
import java.util.Comparator;
16+
17+
import static org.assertj.core.api.Assertions.assertThat;
18+
19+
@ConstructionMock({S3StreamingMessageSource.class, S3RemoteFileTemplate.class})
20+
class S3InboundStreamingChannelAdapterParserTest extends ParserTestBase {
21+
22+
@Mock
23+
private S3SessionFactory sessionFactory;
24+
25+
@Mock
26+
private Comparator<S3Object> comparator;
27+
28+
private S3RemoteFileTemplate remoteFileTemplate;
29+
30+
@Test
31+
void testAdapter() {
32+
registerBean("sf", S3SessionFactory.class, sessionFactory);
33+
registerBean("cmp", Comparator.class, comparator);
34+
35+
var messageSource = loadBean(S3StreamingMessageSource.class, """
36+
<int-aws:s3-inbound-streaming-channel-adapter
37+
id="s3isca"
38+
channel="c"
39+
session-factory="sf"
40+
comparator="cmp"
41+
filename-pattern="file*name"
42+
max-fetch-size="#{10}"
43+
remote-directory="remote"
44+
remote-file-separator=";"
45+
send-timeout="#{50}"
46+
/>
47+
""");
48+
49+
verify(messageSource).setMaxFetchSize(10);
50+
verify(messageSource).setRemoteDirectoryExpression(assertArg(e -> assertThat(e.getExpressionString()).isEqualTo("remote")));
51+
verify(messageSource).setRemoteFileSeparator(";");
52+
verify(messageSource).setFilter(assertArg(f -> assertThat(f).isInstanceOf(CompositeFileListFilter.class)));
53+
54+
verify(remoteFileTemplate).setRemoteDirectoryExpression(assertArg(e -> assertThat(e.getExpressionString()).isEqualTo("remote")));
55+
verify(remoteFileTemplate).setRemoteFileSeparator(";");
56+
}
57+
58+
void testAdapter(S3StreamingMessageSource mock, Context context) {
59+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
60+
.contains(remoteFileTemplate, comparator);
61+
}
62+
63+
void testAdapter(S3RemoteFileTemplate mock, Context context) {
64+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
65+
.contains(sessionFactory);
66+
remoteFileTemplate = mock;
67+
}
68+
}

0 commit comments

Comments
 (0)