From b37680333c7a0f7bc6f0da158d96fe4b1189df79 Mon Sep 17 00:00:00 2001 From: Athou Date: Wed, 23 Aug 2023 20:21:45 +0200 Subject: [PATCH] clean database after each test --- .../CommaFeedDropwizardAppExtension.java | 34 +++++++++++++++++++ .../com/commafeed/e2e/AuthentificationIT.java | 8 ++--- .../java/com/commafeed/e2e/ReadingIT.java | 8 ++--- .../com/commafeed/integration/FeedIT.java | 8 ++--- 4 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 commafeed-server/src/test/java/com/commafeed/CommaFeedDropwizardAppExtension.java diff --git a/commafeed-server/src/test/java/com/commafeed/CommaFeedDropwizardAppExtension.java b/commafeed-server/src/test/java/com/commafeed/CommaFeedDropwizardAppExtension.java new file mode 100644 index 00000000..ab3ba4da --- /dev/null +++ b/commafeed-server/src/test/java/com/commafeed/CommaFeedDropwizardAppExtension.java @@ -0,0 +1,34 @@ +package com.commafeed; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import javax.sql.DataSource; + +import com.codahale.metrics.MetricRegistry; + +import io.dropwizard.testing.ResourceHelpers; +import io.dropwizard.testing.junit5.DropwizardAppExtension; + +public class CommaFeedDropwizardAppExtension extends DropwizardAppExtension { + + public CommaFeedDropwizardAppExtension() { + super(CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml")); + } + + @Override + public void after() { + super.after(); + + // clean database after each test + DataSource dataSource = getConfiguration().getDataSourceFactory().build(new MetricRegistry(), "cleanup"); + try (Connection connection = dataSource.getConnection(); + PreparedStatement statement = connection.prepareStatement("DROP ALL OBJECTS")) { + statement.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException("could not cleanup database", e); + } + } + +} diff --git a/commafeed-server/src/test/java/com/commafeed/e2e/AuthentificationIT.java b/commafeed-server/src/test/java/com/commafeed/e2e/AuthentificationIT.java index 39288253..3dde120c 100644 --- a/commafeed-server/src/test/java/com/commafeed/e2e/AuthentificationIT.java +++ b/commafeed-server/src/test/java/com/commafeed/e2e/AuthentificationIT.java @@ -3,20 +3,16 @@ package com.commafeed.e2e; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import com.commafeed.CommaFeedApplication; -import com.commafeed.CommaFeedConfiguration; +import com.commafeed.CommaFeedDropwizardAppExtension; import com.microsoft.playwright.Locator; import com.microsoft.playwright.assertions.PlaywrightAssertions; -import io.dropwizard.testing.ResourceHelpers; -import io.dropwizard.testing.junit5.DropwizardAppExtension; import io.dropwizard.testing.junit5.DropwizardExtensionsSupport; @ExtendWith(DropwizardExtensionsSupport.class) class AuthentificationIT extends PlaywrightTestBase { - private static final DropwizardAppExtension EXT = new DropwizardAppExtension<>(CommaFeedApplication.class, - ResourceHelpers.resourceFilePath("config.test.yml")); + private static final CommaFeedDropwizardAppExtension EXT = new CommaFeedDropwizardAppExtension(); @Test void loginFail() { diff --git a/commafeed-server/src/test/java/com/commafeed/e2e/ReadingIT.java b/commafeed-server/src/test/java/com/commafeed/e2e/ReadingIT.java index 8bce70e2..49f21cb3 100644 --- a/commafeed-server/src/test/java/com/commafeed/e2e/ReadingIT.java +++ b/commafeed-server/src/test/java/com/commafeed/e2e/ReadingIT.java @@ -12,22 +12,18 @@ import org.mockserver.junit.jupiter.MockServerExtension; import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; -import com.commafeed.CommaFeedApplication; -import com.commafeed.CommaFeedConfiguration; +import com.commafeed.CommaFeedDropwizardAppExtension; import com.microsoft.playwright.Locator; import com.microsoft.playwright.Locator.WaitForOptions; import com.microsoft.playwright.assertions.PlaywrightAssertions; -import io.dropwizard.testing.ResourceHelpers; -import io.dropwizard.testing.junit5.DropwizardAppExtension; import io.dropwizard.testing.junit5.DropwizardExtensionsSupport; @ExtendWith(DropwizardExtensionsSupport.class) @ExtendWith(MockServerExtension.class) class ReadingIT extends PlaywrightTestBase { - private static final DropwizardAppExtension EXT = new DropwizardAppExtension( - CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml")); + private static final CommaFeedDropwizardAppExtension EXT = new CommaFeedDropwizardAppExtension(); private MockServerClient mockServerClient; diff --git a/commafeed-server/src/test/java/com/commafeed/integration/FeedIT.java b/commafeed-server/src/test/java/com/commafeed/integration/FeedIT.java index 50a869c7..f06adeed 100644 --- a/commafeed-server/src/test/java/com/commafeed/integration/FeedIT.java +++ b/commafeed-server/src/test/java/com/commafeed/integration/FeedIT.java @@ -22,21 +22,17 @@ import org.mockserver.junit.jupiter.MockServerExtension; import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; -import com.commafeed.CommaFeedApplication; -import com.commafeed.CommaFeedConfiguration; +import com.commafeed.CommaFeedDropwizardAppExtension; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.request.SubscribeRequest; -import io.dropwizard.testing.ResourceHelpers; -import io.dropwizard.testing.junit5.DropwizardAppExtension; import io.dropwizard.testing.junit5.DropwizardExtensionsSupport; @ExtendWith(DropwizardExtensionsSupport.class) @ExtendWith(MockServerExtension.class) class FeedIT { - private static final DropwizardAppExtension EXT = new DropwizardAppExtension( - CommaFeedApplication.class, ResourceHelpers.resourceFilePath("config.test.yml")) { + private static final CommaFeedDropwizardAppExtension EXT = new CommaFeedDropwizardAppExtension() { @Override protected JerseyClientBuilder clientBuilder() { HttpAuthenticationFeature feature = HttpAuthenticationFeature.basic("admin", "admin");