Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,19 @@
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;
import static org.assertj.core.api.Assertions.assertThat;
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;

Expand All @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,22 @@
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;
import org.springframework.context.annotation.Import;
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;
Expand All @@ -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;
Expand Down Expand Up @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,40 @@
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;
import static org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties.StubsMode.CLASSPATH;
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;

final String VALID_ACCESS_TOKEN = "Bearer mikunakanoisthebestgirl";
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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand All @@ -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
}

Expand Down
8 changes: 8 additions & 0 deletions src/test/java/testing/core/AbstractIntegrationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<>(
Expand Down