Skip to content

Commit da6d926

Browse files
committed
test(int-aws-support): S3OutboundGatewayParserTest
1 parent 700181b commit da6d926

File tree

1 file changed

+72
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)