|
| 1 | +package io.debezium.platform.environment.connection; |
| 2 | + |
| 3 | +import static org.junit.jupiter.api.Assertions.assertTrue; |
| 4 | + |
| 5 | +import java.util.HashMap; |
| 6 | +import java.util.Map; |
| 7 | +import java.util.concurrent.TimeUnit; |
| 8 | + |
| 9 | +import io.quarkus.test.common.QuarkusTestResource; |
| 10 | +import org.junit.jupiter.api.BeforeEach; |
| 11 | +import org.junit.jupiter.api.DisplayName; |
| 12 | +import org.junit.jupiter.api.Test; |
| 13 | +import org.testcontainers.pulsar.PulsarContainer; |
| 14 | +import org.testcontainers.shaded.org.awaitility.Awaitility; |
| 15 | + |
| 16 | +import io.debezium.platform.data.dto.ConnectionValidationResult; |
| 17 | +import io.debezium.platform.data.model.ConnectionEntity; |
| 18 | +import io.debezium.platform.domain.views.Connection; |
| 19 | +import io.debezium.platform.environment.connection.destination.PulsarConnectionValidator; |
| 20 | +import io.debezium.platform.environment.destination.ApachePulsarTestResource; |
| 21 | +import io.quarkus.test.junit.QuarkusTest; |
| 22 | + |
| 23 | +@QuarkusTest |
| 24 | +@QuarkusTestResource(value = ApachePulsarTestResource.class, restrictToAnnotatedClass = true) |
| 25 | +class PulsarConnectionValidatorIT { |
| 26 | + public static final int DEFAULT_30_SECONDS_TIMEOUT = 30; |
| 27 | + |
| 28 | + private PulsarConnectionValidator validator; |
| 29 | + |
| 30 | + @BeforeEach |
| 31 | + void setUp() { |
| 32 | + validator = new PulsarConnectionValidator(DEFAULT_30_SECONDS_TIMEOUT); |
| 33 | + } |
| 34 | + |
| 35 | + @Test |
| 36 | + @DisplayName("Should successfully validate connection with valid Pulsar configuration") |
| 37 | + void shouldValidateSuccessfulConnection() { |
| 38 | + PulsarContainer container = ApachePulsarTestResource.getContainer(); |
| 39 | + |
| 40 | + Awaitility.await() |
| 41 | + .atMost(300, TimeUnit.SECONDS) |
| 42 | + .until(container::isRunning); |
| 43 | + |
| 44 | + Map<String, Object> config = new HashMap<>(); |
| 45 | + config.put("serviceHttpUrl", container.getHttpServiceUrl()); |
| 46 | + Connection connection = new TestConnectionView(ConnectionEntity.Type.APACHE_PULSAR, config); |
| 47 | + |
| 48 | + ConnectionValidationResult result = validator.validate(connection); |
| 49 | + |
| 50 | + assertTrue(result.valid(), "Connection validation should succeed"); |
| 51 | + } |
| 52 | +} |
0 commit comments