diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java index 6d58540..65bfbc1 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/AddItemToPlaylistEndpointTest.java @@ -30,6 +30,7 @@ import org.springframework.test.context.NestedTestConfiguration; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; +import testing.core.AbstractIntegrationTest; import testing.faker.PlaylistEntityFaker; import testing.faker.TrackPlayableItemFaker; import testing.spring.AutoConfigureSonataStubs; @@ -43,14 +44,8 @@ import static org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties.StubsMode.CLASSPATH; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@AutoConfigureQaEnvironment -@ActiveProfiles("test") @Import(Config.class) -class AddItemToPlaylistEndpointTest { +class AddItemToPlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -80,7 +75,7 @@ class AddItemToPlaylistEndpointTest { PlaylistRepository playlistRepository; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java index 3b4ad73..9dc5625 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/CreatePlaylistEndpointTest.java @@ -10,27 +10,17 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; +import testing.core.AbstractIntegrationTest; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.http.MediaType.APPLICATION_JSON; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class CreatePlaylistEndpointTest { +public class CreatePlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -43,7 +33,7 @@ public class CreatePlaylistEndpointTest { static final String INVALID_TOKEN = "Bearer invalidtoken"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java index 00b6308..f82eee2 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistCoverImageEndpointTest.java @@ -20,6 +20,7 @@ import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.ImagesDtoAssert; +import testing.core.AbstractIntegrationTest; import testing.spring.AutoConfigureSonataStubs; import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @@ -31,14 +32,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class FetchPlaylistCoverImageEndpointTest { +public class FetchPlaylistCoverImageEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -56,7 +50,7 @@ public class FetchPlaylistCoverImageEndpointTest { final String PLAYLIST_OWNER_ID = "1"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java index 382b3bd..089339e 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistEndpointTest.java @@ -11,14 +11,11 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpHeaders; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; +import testing.core.AbstractIntegrationTest; import static com.odeyalo.sonata.playlists.model.PlaylistType.PRIVATE; import static com.odeyalo.sonata.playlists.model.PlaylistType.PUBLIC; @@ -26,12 +23,7 @@ import static org.springframework.http.MediaType.APPLICATION_JSON; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class FetchPlaylistEndpointTest { +public class FetchPlaylistEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -49,7 +41,7 @@ public class FetchPlaylistEndpointTest { @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java index 6f2530e..cf36a51 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/FetchPlaylistTracksEndpointTest.java @@ -19,10 +19,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; import org.springframework.context.annotation.Bean; @@ -30,16 +27,14 @@ import org.springframework.context.annotation.Primary; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.NestedTestConfiguration; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.PlaylistCollaboratorEntityFaker; +import testing.core.AbstractIntegrationTest; import testing.factory.PlaylistServices; import testing.faker.PlaylistFaker; import testing.faker.TrackPlayableItemFaker; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import java.time.Instant; import java.util.List; @@ -53,14 +48,8 @@ import static org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties.StubsMode.CLASSPATH; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataStubs -@AutoConfigureQaEnvironment -@ActiveProfiles("test") @Import(TestConfig.class) -class FetchPlaylistTracksEndpointTest { +class FetchPlaylistTracksEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -102,7 +91,7 @@ class FetchPlaylistTracksEndpointTest { static final TrackPlayableItem PLAYABLE_ITEM_1 = TrackPlayableItemFaker.create().setPublicId(TRACK_1_ID).get(); @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java index 2891195..9df59b3 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/PartialPlaylistUpdateEndpointTest.java @@ -8,21 +8,16 @@ import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.test.context.NestedTestConfiguration; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; import reactor.core.publisher.Hooks; import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; -import testing.spring.AutoConfigureSonataStubs; -import testing.spring.autoconfigure.AutoConfigureQaEnvironment; -import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; +import testing.core.AbstractIntegrationTest; import static com.odeyalo.sonata.playlists.model.PlaylistType.PRIVATE; import static org.assertj.core.api.Assertions.assertThat; @@ -30,24 +25,15 @@ import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class PartialPlaylistUpdateEndpointTest { +public class PartialPlaylistUpdateEndpointTest extends AbstractIntegrationTest { public static final String INVALID_TOKEN = "Bearer invalidtoken"; @Autowired WebTestClient webTestClient; - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Autowired SonataPlaylistHttpTestClient playlistHttpTestClient; - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") @Autowired QaControllerOperations qaControllerOperations; @@ -55,7 +41,7 @@ public class PartialPlaylistUpdateEndpointTest { final String VALID_USER_ID = "1"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java b/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java index 4ef90dd..c7ac211 100644 --- a/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java +++ b/src/test/java/com/odeyalo/sonata/playlists/controller/PlaylistImageUploadEndpointTest.java @@ -21,6 +21,7 @@ import testing.QaControllerOperations; import testing.SonataPlaylistHttpTestClient; import testing.asserts.PlaylistDtoAssert; +import testing.core.AbstractIntegrationTest; import testing.spring.AutoConfigureSonataStubs; import testing.spring.autoconfigure.AutoConfigureQaEnvironment; import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @@ -31,15 +32,7 @@ import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.test.context.NestedTestConfiguration.EnclosingConfiguration.OVERRIDE; -@SpringBootTest -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureWebTestClient -@AutoConfigureSonataPlaylistHttpClient -@AutoConfigureQaEnvironment -@AutoConfigureSonataStubs -@TestPropertySource(locations = "classpath:application-test.properties") -public class PlaylistImageUploadEndpointTest { - public static final String INVALID_TOKEN = "Bearer invalidtoken"; +class PlaylistImageUploadEndpointTest extends AbstractIntegrationTest { @Autowired WebTestClient webTestClient; @@ -51,12 +44,13 @@ public class PlaylistImageUploadEndpointTest { final String VALID_ACCESS_TOKEN = "Bearer mikunakanoisthebestgirl"; + final String INVALID_TOKEN = "Bearer invalidtoken"; final String VALID_USER_ID = "1"; final String PLAYLIST_COVER_IMAGE_SOURCE = "images/playlist_cover_450kb_w564_h398.png"; @BeforeAll - void setup() { + static void setup() { Hooks.onOperatorDebug(); // DO NOT DELETE IT, VERY IMPORTANT LINE, WITHOUT IT FEIGN WITH WIREMOCK THROWS ILLEGAL STATE EXCEPTION, I DON'T FIND SOLUTION YET } diff --git a/src/test/java/testing/core/AbstractIntegrationTest.java b/src/test/java/testing/core/AbstractIntegrationTest.java index 0c061e8..bd2ed04 100644 --- a/src/test/java/testing/core/AbstractIntegrationTest.java +++ b/src/test/java/testing/core/AbstractIntegrationTest.java @@ -3,14 +3,22 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.TestInstance; +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.testcontainers.containers.PostgreSQLContainer; +import testing.spring.AutoConfigureSonataStubs; +import testing.spring.autoconfigure.AutoConfigureQaEnvironment; +import testing.spring.autoconfigure.AutoConfigureSonataPlaylistHttpClient; @SpringBootTest @ActiveProfiles("test") +@AutoConfigureWebTestClient +@AutoConfigureSonataPlaylistHttpClient +@AutoConfigureSonataStubs +@AutoConfigureQaEnvironment public abstract class AbstractIntegrationTest { static PostgreSQLContainer postgres = new PostgreSQLContainer<>(