diff --git a/modules/azure/build.gradle b/modules/azure/build.gradle index 90770150162..226f668e954 100644 --- a/modules/azure/build.gradle +++ b/modules/azure/build.gradle @@ -6,7 +6,10 @@ dependencies { // TODO use JDK's HTTP client and/or Apache HttpClient5 shaded 'com.squareup.okhttp3:okhttp:5.1.0' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' + testImplementation 'org.assertj:assertj-core:3.27.4' + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' testImplementation platform("com.azure:azure-sdk-bom:1.2.32") testImplementation 'com.azure:azure-cosmos' testImplementation 'com.azure:azure-storage-blob' @@ -16,3 +19,7 @@ dependencies { testImplementation 'com.azure:azure-messaging-servicebus' testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.2.0.jre8' } + +test { + useJUnitPlatform() +} diff --git a/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java index 2bf0ad856d3..5acf2fe5ad5 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/AzuriteContainerTest.java @@ -11,22 +11,22 @@ import com.azure.storage.queue.QueueClient; import com.azure.storage.queue.QueueServiceClient; import com.azure.storage.queue.QueueServiceClientBuilder; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.MountableFile; import java.util.Properties; import static org.assertj.core.api.Assertions.assertThat; -public class AzuriteContainerTest { +class AzuriteContainerTest { private static final String PASSWORD = "changeit"; private static Properties originalSystemProperties; - @BeforeClass + @BeforeAll public static void captureOriginalSystemProperties() { originalSystemProperties = (Properties) System.getProperties().clone(); System.setProperty( @@ -37,13 +37,13 @@ public static void captureOriginalSystemProperties() { System.setProperty("javax.net.ssl.trustStoreType", "PKCS12"); } - @AfterClass + @AfterAll public static void restoreOriginalSystemProperties() { System.setProperties(originalSystemProperties); } @Test - public void testWithBlobServiceClient() { + void testWithBlobServiceClient() { try ( // emulatorContainer { AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") @@ -56,7 +56,7 @@ public void testWithBlobServiceClient() { } @Test - public void testWithQueueServiceClient() { + void testWithQueueServiceClient() { try (AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0")) { emulator.start(); assertThat(emulator.getConnectionString()).contains("QueueEndpoint=http://"); @@ -65,7 +65,7 @@ public void testWithQueueServiceClient() { } @Test - public void testWithTableServiceClient() { + void testWithTableServiceClient() { try (AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0")) { emulator.start(); assertThat(emulator.getConnectionString()).contains("TableEndpoint=http://"); @@ -74,7 +74,7 @@ public void testWithTableServiceClient() { } @Test - public void testWithBlobServiceClientWithSslUsingPfx() { + void testWithBlobServiceClientWithSslUsingPfx() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl(MountableFile.forClasspathResource("/keystore.pfx"), PASSWORD) @@ -86,7 +86,7 @@ public void testWithBlobServiceClientWithSslUsingPfx() { } @Test - public void testWithQueueServiceClientWithSslUsingPfx() { + void testWithQueueServiceClientWithSslUsingPfx() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl(MountableFile.forClasspathResource("/keystore.pfx"), PASSWORD) @@ -98,7 +98,7 @@ public void testWithQueueServiceClientWithSslUsingPfx() { } @Test - public void testWithTableServiceClientWithSslUsingPfx() { + void testWithTableServiceClientWithSslUsingPfx() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl(MountableFile.forClasspathResource("/keystore.pfx"), PASSWORD) @@ -110,7 +110,7 @@ public void testWithTableServiceClientWithSslUsingPfx() { } @Test - public void testWithBlobServiceClientWithSslUsingPem() { + void testWithBlobServiceClientWithSslUsingPem() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl( @@ -125,7 +125,7 @@ public void testWithBlobServiceClientWithSslUsingPem() { } @Test - public void testWithQueueServiceClientWithSslUsingPem() { + void testWithQueueServiceClientWithSslUsingPem() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl( @@ -140,7 +140,7 @@ public void testWithQueueServiceClientWithSslUsingPem() { } @Test - public void testWithTableServiceClientWithSslUsingPem() { + void testWithTableServiceClientWithSslUsingPem() { try ( AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") .withSsl( @@ -155,7 +155,7 @@ public void testWithTableServiceClientWithSslUsingPem() { } @Test - public void testTwoAccountKeysWithBlobServiceClient() { + void testTwoAccountKeysWithBlobServiceClient() { try ( // withTwoAccountKeys { AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") @@ -194,7 +194,7 @@ public void testTwoAccountKeysWithBlobServiceClient() { } @Test - public void testMultipleAccountsWithBlobServiceClient() { + void testMultipleAccountsWithBlobServiceClient() { try ( // withMoreAccounts { AzuriteContainer emulator = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") diff --git a/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java index 58d1d7ad59c..1191c980edd 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/EventHubsEmulatorContainerTest.java @@ -7,8 +7,7 @@ import com.azure.messaging.eventhubs.EventHubProducerClient; import com.azure.messaging.eventhubs.models.EventPosition; import com.azure.messaging.eventhubs.models.PartitionEvent; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.Network; import org.testcontainers.utility.MountableFile; @@ -19,36 +18,29 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.waitAtMost; -public class EventHubsEmulatorContainerTest { - - @Rule - // network { - public Network network = Network.newNetwork(); - - // } - - @Rule - // azuriteContainer { - public AzuriteContainer azuriteContainer = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") - .withNetwork(network); - - // } - - @Rule - // emulatorContainer { - public EventHubsEmulatorContainer emulator = new EventHubsEmulatorContainer( - "mcr.microsoft.com/azure-messaging/eventhubs-emulator:2.0.1" - ) - .acceptLicense() - .withNetwork(network) - .withConfig(MountableFile.forClasspathResource("/eventhubs_config.json")) - .withAzuriteContainer(azuriteContainer); - - // } +class EventHubsEmulatorContainerTest { @Test public void testWithEventHubsClient() { try ( + // network { + Network network = Network.newNetwork(); + // } + // azuriteContainer { + AzuriteContainer azuriteContainer = new AzuriteContainer("mcr.microsoft.com/azure-storage/azurite:3.33.0") + .withNetwork(network); + // } + // emulatorContainer { + EventHubsEmulatorContainer emulator = new EventHubsEmulatorContainer( + "mcr.microsoft.com/azure-messaging/eventhubs-emulator:2.0.1" + ) + .acceptLicense() + .withNetwork(network) + .withConfig(MountableFile.forClasspathResource("/eventhubs_config.json")) + .withAzuriteContainer(azuriteContainer); + // } + ) { + emulator.start(); // createProducerAndConsumer { EventHubProducerClient producer = new EventHubClientBuilder() .connectionString(emulator.getConnectionString()) @@ -60,9 +52,8 @@ public void testWithEventHubsClient() { .fullyQualifiedNamespace("emulatorNs1") .eventHubName("eh1") .consumerGroup("cg1") - .buildConsumerClient() + .buildConsumerClient(); // } - ) { producer.send(Collections.singletonList(new EventData("test"))); waitAtMost(Duration.ofSeconds(30)) diff --git a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java index 4676e41784a..6bf6ac80fae 100644 --- a/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/azure/ServiceBusEmulatorContainerTest.java @@ -9,8 +9,7 @@ import com.azure.messaging.servicebus.ServiceBusSenderClient; import com.github.dockerjava.api.model.Capability; import org.assertj.core.api.Assertions; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.containers.MSSQLServerContainer; import org.testcontainers.containers.Network; import org.testcontainers.utility.MountableFile; @@ -23,83 +22,78 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -public class ServiceBusEmulatorContainerTest { - - @Rule - // network { - public Network network = Network.newNetwork(); - - // } - - @Rule - // sqlContainer { - public MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer<>( - "mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04" - ) - .acceptLicense() - .withPassword("yourStrong(!)Password") - .withCreateContainerCmdModifier(cmd -> { - cmd.getHostConfig().withCapAdd(Capability.SYS_PTRACE); - }) - .withNetwork(network); - - // } - - @Rule - // emulatorContainer { - public ServiceBusEmulatorContainer emulator = new ServiceBusEmulatorContainer( - "mcr.microsoft.com/azure-messaging/servicebus-emulator:1.1.2" - ) - .acceptLicense() - .withConfig(MountableFile.forClasspathResource("/service-bus-config.json")) - .withNetwork(network) - .withMsSqlServerContainer(mssqlServerContainer); - - // } +class ServiceBusEmulatorContainerTest { @Test - public void testWithClient() { - assertThat(emulator.getConnectionString()).startsWith("Endpoint=sb://"); + void testWithClient() { + try ( + // network { + Network network = Network.newNetwork(); + // } + // sqlContainer { + MSSQLServerContainer mssqlServerContainer = new MSSQLServerContainer<>( + "mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04" + ) + .acceptLicense() + .withPassword("yourStrong(!)Password") + .withCreateContainerCmdModifier(cmd -> { + cmd.getHostConfig().withCapAdd(Capability.SYS_PTRACE); + }) + .withNetwork(network); + // } + // emulatorContainer { + ServiceBusEmulatorContainer emulator = new ServiceBusEmulatorContainer( + "mcr.microsoft.com/azure-messaging/servicebus-emulator:1.1.2" + ) + .acceptLicense() + .withConfig(MountableFile.forClasspathResource("/service-bus-config.json")) + .withNetwork(network) + .withMsSqlServerContainer(mssqlServerContainer); + // } + ) { + emulator.start(); + assertThat(emulator.getConnectionString()).startsWith("Endpoint=sb://"); - // senderClient { - ServiceBusSenderClient senderClient = new ServiceBusClientBuilder() - .connectionString(emulator.getConnectionString()) - .sender() - .queueName("queue.1") - .buildClient(); - // } + // senderClient { + ServiceBusSenderClient senderClient = new ServiceBusClientBuilder() + .connectionString(emulator.getConnectionString()) + .sender() + .queueName("queue.1") + .buildClient(); + // } - await() - .atMost(20, TimeUnit.SECONDS) - .ignoreException(ServiceBusException.class) - .until(() -> { - senderClient.sendMessage(new ServiceBusMessage("Hello, Testcontainers!")); - return true; - }); - senderClient.close(); + await() + .atMost(20, TimeUnit.SECONDS) + .ignoreException(ServiceBusException.class) + .until(() -> { + senderClient.sendMessage(new ServiceBusMessage("Hello, Testcontainers!")); + return true; + }); + senderClient.close(); - final List received = new CopyOnWriteArrayList<>(); - Consumer messageConsumer = m -> { - received.add(m.getMessage().getBody().toString()); - m.complete(); - }; - Consumer errorConsumer = e -> Assertions.fail("Unexpected error: " + e); - // processorClient { - ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder() - .connectionString(emulator.getConnectionString()) - .processor() - .queueName("queue.1") - .processMessage(messageConsumer) - .processError(errorConsumer) - .buildProcessorClient(); - // } - processorClient.start(); + final List received = new CopyOnWriteArrayList<>(); + Consumer messageConsumer = m -> { + received.add(m.getMessage().getBody().toString()); + m.complete(); + }; + Consumer errorConsumer = e -> Assertions.fail("Unexpected error: " + e); + // processorClient { + ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder() + .connectionString(emulator.getConnectionString()) + .processor() + .queueName("queue.1") + .processMessage(messageConsumer) + .processError(errorConsumer) + .buildProcessorClient(); + // } + processorClient.start(); - await() - .atMost(20, TimeUnit.SECONDS) - .untilAsserted(() -> { - assertThat(received).hasSize(1).containsExactlyInAnyOrder("Hello, Testcontainers!"); - }); - processorClient.close(); + await() + .atMost(20, TimeUnit.SECONDS) + .untilAsserted(() -> { + assertThat(received).hasSize(1).containsExactlyInAnyOrder("Hello, Testcontainers!"); + }); + processorClient.close(); + } } } diff --git a/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java b/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java index 140bd64c39a..92b5814641e 100644 --- a/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java +++ b/modules/azure/src/test/java/org/testcontainers/containers/CosmosDBEmulatorContainerTest.java @@ -4,11 +4,10 @@ import com.azure.cosmos.CosmosClientBuilder; import com.azure.cosmos.models.CosmosContainerResponse; import com.azure.cosmos.models.CosmosDatabaseResponse; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.testcontainers.utility.DockerImageName; import java.io.FileOutputStream; @@ -18,59 +17,60 @@ import static org.assertj.core.api.Assertions.assertThat; -public class CosmosDBEmulatorContainerTest { +class CosmosDBEmulatorContainerTest { private static Properties originalSystemProperties; - @BeforeClass + @BeforeAll public static void captureOriginalSystemProperties() { originalSystemProperties = (Properties) System.getProperties().clone(); } - @AfterClass + @AfterAll public static void restoreOriginalSystemProperties() { System.setProperties(originalSystemProperties); } - @Rule - public TemporaryFolder tempFolder = TemporaryFolder.builder().assureDeletion().build(); - - @Rule - // emulatorContainer { - public CosmosDBEmulatorContainer emulator = new CosmosDBEmulatorContainer( - DockerImageName.parse("mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest") - ); - - // } + @TempDir + public Path tempFolder; @Test - public void testWithCosmosClient() throws Exception { - // buildAndSaveNewKeyStore { - Path keyStoreFile = tempFolder.newFile("azure-cosmos-emulator.keystore").toPath(); - KeyStore keyStore = emulator.buildNewKeyStore(); - keyStore.store(new FileOutputStream(keyStoreFile.toFile()), emulator.getEmulatorKey().toCharArray()); - // } - // setSystemTrustStoreParameters { - System.setProperty("javax.net.ssl.trustStore", keyStoreFile.toString()); - System.setProperty("javax.net.ssl.trustStorePassword", emulator.getEmulatorKey()); - System.setProperty("javax.net.ssl.trustStoreType", "PKCS12"); - // } - // buildClient { - CosmosAsyncClient client = new CosmosClientBuilder() - .gatewayMode() - .endpointDiscoveryEnabled(false) - .endpoint(emulator.getEmulatorEndpoint()) - .key(emulator.getEmulatorKey()) - .buildAsyncClient(); - // } - // testWithClientAgainstEmulatorContainer { - CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists("Azure").block(); - assertThat(databaseResponse.getStatusCode()).isEqualTo(201); - CosmosContainerResponse containerResponse = client - .getDatabase("Azure") - .createContainerIfNotExists("ServiceContainer", "/name") - .block(); - assertThat(containerResponse.getStatusCode()).isEqualTo(201); - // } + void testWithCosmosClient() throws Exception { + try ( + // emulatorContainer { + CosmosDBEmulatorContainer emulator = new CosmosDBEmulatorContainer( + DockerImageName.parse("mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest") + ); + // } + ) { + emulator.start(); + // buildAndSaveNewKeyStore { + Path keyStoreFile = tempFolder.resolve("azure-cosmos-emulator.keystore"); + KeyStore keyStore = emulator.buildNewKeyStore(); + keyStore.store(new FileOutputStream(keyStoreFile.toFile()), emulator.getEmulatorKey().toCharArray()); + // } + // setSystemTrustStoreParameters { + System.setProperty("javax.net.ssl.trustStore", keyStoreFile.toString()); + System.setProperty("javax.net.ssl.trustStorePassword", emulator.getEmulatorKey()); + System.setProperty("javax.net.ssl.trustStoreType", "PKCS12"); + // } + // buildClient { + CosmosAsyncClient client = new CosmosClientBuilder() + .gatewayMode() + .endpointDiscoveryEnabled(false) + .endpoint(emulator.getEmulatorEndpoint()) + .key(emulator.getEmulatorKey()) + .buildAsyncClient(); + // } + // testWithClientAgainstEmulatorContainer { + CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists("Azure").block(); + assertThat(databaseResponse.getStatusCode()).isEqualTo(201); + CosmosContainerResponse containerResponse = client + .getDatabase("Azure") + .createContainerIfNotExists("ServiceContainer", "/name") + .block(); + assertThat(containerResponse.getStatusCode()).isEqualTo(201); + // } + } } }