From a9ed883124f27304be591de0d5b708e7193aa274 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Fri, 28 Oct 2022 13:38:32 -0500 Subject: [PATCH] Polish "Move xmpp testcontainer to function-test-support" - Removed custom container - Removed extra whitespace - Moved static props to SBT.properties --- .../fn/test/support/xmpp/XmppContainer.java | 46 ------------------- .../xmpp/XmppTestContainerSupport.java | 8 +++- functions/consumer/xmpp-consumer/pom.xml | 7 --- .../xmpp/XmppConsumerConfigurationTests.java | 37 +++++---------- 4 files changed, 17 insertions(+), 81 deletions(-) delete mode 100644 functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppContainer.java diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppContainer.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppContainer.java deleted file mode 100644 index 093be73c..00000000 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppContainer.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2014-2022 the original author or authors. - * - * Licensed 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 - * - * https://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.springframework.cloud.fn.test.support.xmpp; - -import org.testcontainers.containers.BindMode; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.wait.strategy.Wait; -import org.testcontainers.utility.DockerImageName; - -/** - * @author Chris Bono - */ -public class XmppContainer extends GenericContainer { - - private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("fishbowler/openfire:v4.7.0"); - - private static final int XMPP_INTERNAL_PORT = 5222; - - public XmppContainer() { - this(DEFAULT_IMAGE_NAME); - } - - public XmppContainer(DockerImageName dockerImageName) { - super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); - withExposedPorts(XMPP_INTERNAL_PORT); - withClasspathResourceMapping("xmpp/conf", "/var/lib/openfire/conf", BindMode.READ_ONLY); - withCommand("-demoboot"); - setWaitStrategy(Wait.defaultWaitStrategy()); - } - -} diff --git a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java index bef7d290..fd0712bd 100644 --- a/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java +++ b/functions/common/function-test-support/src/main/java/org/springframework/cloud/fn/test/support/xmpp/XmppTestContainerSupport.java @@ -17,6 +17,8 @@ package org.springframework.cloud.fn.test.support.xmpp; import org.junit.jupiter.api.BeforeAll; +import org.testcontainers.containers.BindMode; +import org.testcontainers.containers.GenericContainer; import org.testcontainers.junit.jupiter.Testcontainers; /** @@ -40,7 +42,6 @@ public interface XmppTestContainerSupport { */ String JANE_USER = "jane"; - /** * Password for sample users. */ @@ -54,7 +55,10 @@ public interface XmppTestContainerSupport { /** * The container. */ - XmppContainer XMPP_CONTAINER = new XmppContainer(); + GenericContainer XMPP_CONTAINER = new GenericContainer<>("fishbowler/openfire:v4.7.0") + .withExposedPorts(5222) + .withClasspathResourceMapping("xmpp/conf", "/var/lib/openfire/conf", BindMode.READ_ONLY) + .withCommand("-demoboot"); @BeforeAll static void startContainer() { diff --git a/functions/consumer/xmpp-consumer/pom.xml b/functions/consumer/xmpp-consumer/pom.xml index e83dca06..cc43a71d 100644 --- a/functions/consumer/xmpp-consumer/pom.xml +++ b/functions/consumer/xmpp-consumer/pom.xml @@ -15,24 +15,17 @@ XMPP consumer - org.springframework.cloud.fn xmpp-common ${project.version} - org.springframework.cloud.fn function-test-support ${project.version} test - - - - - diff --git a/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java b/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java index 9e3eedd1..a69613f5 100644 --- a/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java +++ b/functions/consumer/xmpp-consumer/src/test/java/org/springframework/cloud/fn/consumer/xmpp/XmppConsumerConfigurationTests.java @@ -48,25 +48,29 @@ import org.springframework.test.context.DynamicPropertySource; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.JOHN_USER; +import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.SERVICE_NAME; +import static org.springframework.cloud.fn.test.support.xmpp.XmppTestContainerSupport.USER_PW; /** * @author Daniel Frey * @author Chris Bono - * - * @since 4.0.0 */ -@SpringBootTest +@SpringBootTest( + properties = { + "xmpp.factory.user=" + JOHN_USER, + "xmpp.factory.password=" + USER_PW, + "xmpp.factory.service-name=" + SERVICE_NAME, + "xmpp.factory.security-mode=disabled" + } +) @DirtiesContext public class XmppConsumerConfigurationTests implements XmppTestContainerSupport { @DynamicPropertySource static void registerConfigurationProperties(DynamicPropertyRegistry registry) { - registry.add("xmpp.factory.user", () -> JOHN_USER); - registry.add("xmpp.factory.password", () -> USER_PW); registry.add("xmpp.factory.host", () -> XmppTestContainerSupport.getXmppHost()); registry.add("xmpp.factory.port", () -> XmppTestContainerSupport.getXmppMappedPort()); - registry.add("xmpp.factory.service-name", () -> SERVICE_NAME); - registry.add("xmpp.factory.security-mode", () -> "disabled"); } @Autowired @@ -78,7 +82,6 @@ public class XmppConsumerConfigurationTests implements XmppTestContainerSupport @BeforeEach void setup() throws IOException, SmackException, XMPPException, InterruptedException { - XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder(); builder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); builder.setHost(XmppTestContainerSupport.getXmppHost()); @@ -86,23 +89,18 @@ public class XmppConsumerConfigurationTests implements XmppTestContainerSupport builder.setResource(SERVICE_NAME); builder.setUsernameAndPassword(JANE_USER, USER_PW) .setXmppDomain(SERVICE_NAME); - this.clientConnection = new XMPPTCPConnection(builder.build()); this.clientConnection.connect(); this.clientConnection.login(); - } @AfterEach void teardown() { - this.clientConnection.instantShutdown(); - } @Test void messageHandlerConfiguration() { - StanzaCollector collector = this.clientConnection.createStanzaCollector(StanzaTypeFilter.MESSAGE); @@ -113,19 +111,14 @@ public class XmppConsumerConfigurationTests implements XmppTestContainerSupport await().atMost(Duration.ofSeconds(20)).pollDelay(Duration.ofMillis(100)) .untilAsserted(() -> { - xmppConsumer.accept(testMessage); - Stanza stanza = collector.nextResult(); assertStanza(stanza); - }); - } @Test void xmppMessageHandlerConfiguration() throws XmppStringprepException { - StanzaCollector collector = this.clientConnection.createStanzaCollector(StanzaTypeFilter.MESSAGE); @@ -135,14 +128,10 @@ public class XmppConsumerConfigurationTests implements XmppTestContainerSupport await().atMost(Duration.ofSeconds(20)).pollDelay(Duration.ofMillis(100)) .untilAsserted(() -> { - xmppConsumer.accept(testMessage); - Stanza stanza = collector.nextResult(); assertStanza(stanza); - }); - } private void assertStanza(Stanza stanza) { @@ -151,15 +140,11 @@ public class XmppConsumerConfigurationTests implements XmppTestContainerSupport } private void assertTo(Stanza stanza) { - assertThat(stanza.getTo().asBareJid().asUnescapedString()).isEqualTo(JANE_USER + "@" + SERVICE_NAME); - } private void assertFrom(Stanza stanza) { - assertThat(stanza.getFrom().asBareJid().asUnescapedString()).isEqualTo(JOHN_USER + "@" + SERVICE_NAME); - } @SpringBootConfiguration