Skip to content

Commit 700181b

Browse files
committed
test(int-aws-support): S3OutboundChannelAdapterParserTest
1 parent 752bbf8 commit 700181b

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

int-aws-support/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ dependencies {
1212
compileOnly "org.springframework.integration:spring-integration-http"
1313

1414
testImplementation "io.github.boolivar:mockito-inline-extension"
15+
testImplementation "software.amazon.awssdk:s3-transfer-manager"
1516
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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.outbound.S3MessageHandler;
10+
import org.springframework.integration.aws.outbound.S3MessageHandler.Command;
11+
import org.springframework.messaging.Message;
12+
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
13+
import software.amazon.awssdk.transfer.s3.S3TransferManager;
14+
15+
import java.util.function.BiConsumer;
16+
17+
import static org.assertj.core.api.Assertions.assertThat;
18+
19+
class S3OutboundChannelAdapterParserTest extends ParserTestBase {
20+
21+
@Mock
22+
private S3TransferManager transferManager;
23+
24+
@Mock
25+
private BiConsumer<PutObjectRequest.Builder, Message<?>> uploadMetadataProvider;
26+
27+
@ConstructionMock(S3MessageHandler.class)
28+
@Test
29+
void testMessageHandler() {
30+
registerBean("tm", transferManager);
31+
registerBean("ump", uploadMetadataProvider);
32+
33+
parse("""
34+
<int-aws:s3-outbound-channel-adapter
35+
id="s3oca"
36+
channel="c"
37+
order="#{5}"
38+
transfer-manager="tm"
39+
bucket="bkt"
40+
command="#{'COPY'}"
41+
destination-bucket-expression="dest.bkt.exp"
42+
destination-key-expression="dest.key.exp"
43+
key-expression="key.exp"
44+
object-acl-expression="acl.exp"
45+
upload-metadata-provider="ump"
46+
progress-listener="unknownListener"
47+
resource-id-resolver="unknownResolver"
48+
/>
49+
""");
50+
51+
var handler = beanFactory.getBean(S3MessageHandler.class);
52+
53+
verify(handler).setOrder(5);
54+
verify(handler).setCommand(Command.COPY);
55+
verify(handler).setKeyExpression(argThat(e -> "key.exp".equals(e.getExpressionString())));
56+
verify(handler).setDestinationKeyExpression(argThat(e -> "dest.key.exp".equals(e.getExpressionString())));
57+
verify(handler).setDestinationBucketExpression(argThat(e -> "dest.bkt.exp".equals(e.getExpressionString())));
58+
verify(handler).setUploadMetadataProvider(uploadMetadataProvider);
59+
}
60+
61+
void testMessageHandler(S3MessageHandler mock, Context context) {
62+
assertThat(context.arguments()).asInstanceOf(InstanceOfAssertFactories.LIST)
63+
.contains(transferManager, "bkt", false);
64+
}
65+
}

0 commit comments

Comments
 (0)