This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch CAMEL-20159
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 437e1bee7cd7c4b41d7c22652afab501b1034b6f
Author: Andrea Cosentino <[email protected]>
AuthorDate: Wed Nov 29 10:01:42 2023 +0100

    CAMEL-20159 - Camel-AWS-Config: Add Test-infra module - Adding test 
leveraging the test-infra module
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 components/camel-aws/camel-aws-config/pom.xml      |  9 +++
 .../aws/config/integration/AWSConfigBase.java      | 40 +++++++++++
 .../config/integration/AWSConfigProducerIT.java    | 80 ++++++++++++++++++++++
 3 files changed, 129 insertions(+)

diff --git a/components/camel-aws/camel-aws-config/pom.xml 
b/components/camel-aws/camel-aws-config/pom.xml
index c9146924215..e9b8b4609e2 100644
--- a/components/camel-aws/camel-aws-config/pom.xml
+++ b/components/camel-aws/camel-aws-config/pom.xml
@@ -61,6 +61,15 @@
             <artifactId>camel-test-junit5</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <!-- test infra -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-infra-aws-v2</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
diff --git 
a/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigBase.java
 
b/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigBase.java
new file mode 100644
index 00000000000..ab80acb5898
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigBase.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.config.integration;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.aws.config.AWSConfigComponent;
+import org.apache.camel.test.infra.aws.common.services.AWSService;
+import org.apache.camel.test.infra.aws2.clients.AWSSDKClientUtils;
+import org.apache.camel.test.infra.aws2.services.AWSServiceFactory;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class AWSConfigBase extends CamelTestSupport {
+    @RegisterExtension
+    public static AWSService service = AWSServiceFactory.createConfigService();
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        AWSConfigComponent config = context.getComponent("aws-config", 
AWSConfigComponent.class);
+        
config.getConfiguration().setConfigClient(AWSSDKClientUtils.newConfigClient());
+        return context;
+    }
+}
diff --git 
a/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigProducerIT.java
 
b/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigProducerIT.java
new file mode 100644
index 00000000000..5f6ad069176
--- /dev/null
+++ 
b/components/camel-aws/camel-aws-config/src/test/java/org/apache/camel/component/aws/config/integration/AWSConfigProducerIT.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.config.integration;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws.config.AWSConfigConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.Test;
+import software.amazon.awssdk.services.config.model.DeleteConfigRuleResponse;
+import software.amazon.awssdk.services.config.model.PutConfigRuleResponse;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class AWSConfigProducerIT extends AWSConfigBase {
+
+    @EndpointInject("mock:result")
+    private MockEndpoint mock;
+
+    @Test
+    public void PutAndRemoveRule() {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:putConfigRule", new 
Processor() {
+            @Override
+            public void process(Exchange exchange) {
+
+                exchange.getMessage().setHeader(AWSConfigConstants.SOURCE, 
"AWS");
+                
exchange.getMessage().setHeader(AWSConfigConstants.RULE_SOURCE_IDENTIFIER, 
"S3_LIFECYCLE_POLICY_CHECK");
+                exchange.getMessage().setHeader(AWSConfigConstants.RULE_NAME, 
"Test");
+            }
+        });
+
+        PutConfigRuleResponse resultGet = (PutConfigRuleResponse) 
exchange.getIn().getBody();
+        assertTrue(resultGet.sdkHttpResponse().isSuccessful());
+
+        exchange = template.request("direct:removeConfigRule", new Processor() 
{
+            @Override
+            public void process(Exchange exchange) {
+
+                exchange.getMessage().setHeader(AWSConfigConstants.RULE_NAME, 
"Test");
+            }
+        });
+
+        DeleteConfigRuleResponse deleteResponse = (DeleteConfigRuleResponse) 
exchange.getIn().getBody();
+        assertTrue(deleteResponse.sdkHttpResponse().isSuccessful());
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            @Override
+            public void configure() {
+                from("direct:putConfigRule")
+                        .to("aws-config://test?operation=putConfigRule")
+                        .to("mock:result");
+
+                from("direct:removeConfigRule")
+                        .to("aws-config://test?operation=removeConfigRule")
+                        .to("mock:result");
+            }
+        };
+    }
+}

Reply via email to