Skip to content

Commit 752bbf8

Browse files
committed
test(int-aws-support): S3InboundStreamingChannelAdapterParserTest
1 parent 91c9f72 commit 752bbf8

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package org.springframework.integration.aws.support.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", sessionFactory);
33+
registerBean("cmp", comparator);
34+
35+
parse("""
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+
remote-directory="remote"
43+
remote-file-separator=";"
44+
/>
45+
""");
46+
47+
var messageSource = beanFactory.getBean(S3StreamingMessageSource.class);
48+
49+
verify(messageSource).setRemoteDirectoryExpression(assertArg(e -> assertThat(e.getExpressionString()).isEqualTo("remote")));
50+
verify(messageSource).setRemoteFileSeparator(";");
51+
verify(messageSource).setFilter(assertArg(f -> assertThat(f).isInstanceOf(CompositeFileListFilter.class)));
52+
53+
verify(remoteFileTemplate).setRemoteDirectoryExpression(assertArg(e -> assertThat(e.getExpressionString()).isEqualTo("remote")));
54+
verify(remoteFileTemplate).setRemoteFileSeparator(";");
55+
}
56+
57+
void testAdapter(S3StreamingMessageSource mock, Context context) {
58+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
59+
.contains(remoteFileTemplate, comparator);
60+
}
61+
62+
void testAdapter(S3RemoteFileTemplate mock, Context context) {
63+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
64+
.contains(sessionFactory);
65+
remoteFileTemplate = mock;
66+
}
67+
}

0 commit comments

Comments
 (0)