diff --git a/pom.xml b/pom.xml index a61614b..373d6df 100644 --- a/pom.xml +++ b/pom.xml @@ -91,17 +91,49 @@ provided + + org.springframework.security + spring-security-test + test + + + + io.rest-assured + rest-assured + 5.4.0 + test + + + io.rest-assured + json-path + 5.4.0 + test + org.springframework.boot spring-boot-starter-test test - org.springframework.security - spring-security-test + org.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + junit-jupiter + test + + + org.testcontainers + mysql + test + + + com.h2database + h2 test - org.mapstruct mapstruct @@ -131,12 +163,12 @@ 3.3.0 - - - - - - + + + + + + ${maven.checkstyle.plugin.configLocation} diff --git a/src/main/java/back/activitymanager/controller/ReviewController.java b/src/main/java/back/activitymanager/controller/ReviewController.java index d87b754..a3ad5dc 100644 --- a/src/main/java/back/activitymanager/controller/ReviewController.java +++ b/src/main/java/back/activitymanager/controller/ReviewController.java @@ -3,6 +3,8 @@ import back.activitymanager.dto.review.ReviewCreateRequestDto; import back.activitymanager.dto.review.ReviewDto; import back.activitymanager.service.ReviewService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; @@ -18,10 +20,13 @@ @RestController @RequiredArgsConstructor @RequestMapping("/review") +@Tag(name = "Review", description = + "User can see a reviews and add a new reviews") public class ReviewController { private final ReviewService reviewService; + @Operation(summary = "Create a review") @PostMapping @PreAuthorize("hasRole('USER')") public ReviewDto createReview(Authentication authentication, @@ -30,6 +35,7 @@ public ReviewDto createReview(Authentication authentication, return reviewService.createReview(authentication, requestDto); } + @Operation(summary = "Get all reviews") @GetMapping public Page getReviews(Pageable pageable) { return reviewService.getReviews(pageable); diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml index 5236486..ab8454f 100644 --- a/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/src/main/resources/db/changelog/db.changelog-master.yaml @@ -19,3 +19,5 @@ databaseChangeLog: file: db/changelog/changes/09-add-column-to-activities.yaml - include: file: db/changelog/changes/10-update-users-photo-path.yaml + - include: + file: db/changelog/changes/11-create-reviews-table.yaml diff --git a/src/test/java/back/activitymanager/TestApplication.java b/src/test/java/back/activitymanager/TestApplication.java new file mode 100644 index 0000000..b3f7cc4 --- /dev/null +++ b/src/test/java/back/activitymanager/TestApplication.java @@ -0,0 +1,11 @@ +package back.activitymanager; + +import org.springframework.boot.SpringApplication; + +public class TestApplication { + + public static void main(String[] args) { + SpringApplication.from(ActivityManagerApplication::main).with(TestcontainersConfiguration.class).run(args); + } + +} diff --git a/src/test/java/back/activitymanager/TestcontainersConfiguration.java b/src/test/java/back/activitymanager/TestcontainersConfiguration.java new file mode 100644 index 0000000..a14a002 --- /dev/null +++ b/src/test/java/back/activitymanager/TestcontainersConfiguration.java @@ -0,0 +1,18 @@ +package back.activitymanager; + +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; +import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.utility.DockerImageName; + +@TestConfiguration(proxyBeanMethods = false) +class TestcontainersConfiguration { + + @Bean + @ServiceConnection + MySQLContainer mysqlContainer() { + return new MySQLContainer<>(DockerImageName.parse("mysql:latest")); + } + +} diff --git a/src/test/java/back/activitymanager/Util.java b/src/test/java/back/activitymanager/Util.java new file mode 100644 index 0000000..759adba --- /dev/null +++ b/src/test/java/back/activitymanager/Util.java @@ -0,0 +1,24 @@ +package back.activitymanager; + +import back.activitymanager.dto.user.UserLoginDto; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +public class Util { + public static String getToken() { + UserLoginDto loginDto = new UserLoginDto(); + loginDto.setEmail("user@gmail.com"); + loginDto.setPassword("securePassword123"); + + return RestAssured + .given() + .contentType(ContentType.JSON) + .body(loginDto) + .when() + .post("/auth/login") + .then() + .statusCode(200) + .extract() + .path("token"); + } +} diff --git a/src/test/java/back/activitymanager/activity/ActivityControllerTest.java b/src/test/java/back/activitymanager/activity/ActivityControllerTest.java new file mode 100644 index 0000000..10292bf --- /dev/null +++ b/src/test/java/back/activitymanager/activity/ActivityControllerTest.java @@ -0,0 +1,194 @@ +package back.activitymanager.activity; + +import back.activitymanager.Util; +import back.activitymanager.dto.activity.ActivityCreateRequestDto; +import back.activitymanager.dto.activity.ActivityDto; +import back.activitymanager.dto.activity.ActivitySearchDto; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.junit.Assert; +import org.junit.jupiter.api.*; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import java.time.LocalDateTime; +import java.util.List; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.StringEndsWith.endsWith; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@AutoConfigureMockMvc +@ActiveProfiles("test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class ActivityControllerTest { + private static final String POST_ID = "01028"; + @LocalServerPort + private int port; + + @BeforeEach + void setUp() { + RestAssured.port = port; + } + + @Test + @DisplayName("Should create activity successfully") + @Sql(scripts = "classpath:database/user/create-user.sql", + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void createActivity_successCreation_ReturnsActivityDto() { + ActivityCreateRequestDto dto = new ActivityCreateRequestDto(); + dto.setName("Yoga Session"); + dto.setForWho("Adults"); + dto.setNumberOfPeople(10); + dto.setCategory("Health"); + dto.setFormat("Offline"); + dto.setLat(50.4501); + dto.setLng(30.5234); + dto.setImgId(1); + dto.setLocalDateTime(LocalDateTime.of(2025, 8, 15, 10, 0)); + + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .body(dto) + .when() + .post("/activity/create") + .then() + .statusCode(201) + .body("local", endsWith(POST_ID)); + } + + @Test + @DisplayName("Should get activity successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/activity/create-activity.sql" + }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getActivities_successGetting_ReturnsPageActivityDto() { + RestAssured + .given() + .contentType(ContentType.JSON) + .when() + .post("/activity") + .then() + .statusCode(200) + .body("content[0].name", + equalTo("football")) + .body("content[0].local", + equalTo("Not found")); + } + + @Test + @DisplayName("Should get activity by id successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/activity/create-activity.sql" + }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getActivities_successGetting_ReturnsActivityDto() { + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .when() + .get("/activity/123") + .then() + .statusCode(200) + .body("name", equalTo("football")) + .body("local", equalTo("Not found")); + } + + @Test + @DisplayName("Should get activity a user created successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/activity/create-activity.sql" + }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getMyActivities_successGetting_ReturnsPageActivityDto() { + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .when() + .post("/activity/myActivities") + .then() + .statusCode(200) + .body("content[0].name", equalTo("football")) + .body("content[0].local", equalTo("Not found")); + } + + @Test + @DisplayName("Should get activity user participating successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/activity/create-activity.sql", + "classpath:database/activity/create-activity-user.sql" + }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = { + "classpath:database/activity/delete-activity-user.sql", + "classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getMeParticipating_successGetting_ReturnsPageActivityDto() { + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .when() + .post("/activity/myActivities") + .then() + .statusCode(200) + .body("content[0].name", equalTo("football")) + .body("content[0].local", equalTo("Not found")); + } + + @Test + @DisplayName("Should get activity user participating successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/activity/create-activity.sql" + }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = { + "classpath:database/activity/delete-activities.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void searchActivity_successGetting_ReturnsPageActivityDto() { + ActivitySearchDto activitySearchDto = new ActivitySearchDto(); + activitySearchDto.setCategory("sport"); + activitySearchDto.setFormat("format"); + activitySearchDto.setForWho("men"); + + List activityDtos = RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .body(activitySearchDto) + .when() + .post("/activity/search") + .then() + .statusCode(200) + .extract() + .body() + .jsonPath() + .getList(".", ActivityDto.class); + + assertEquals(activityDtos.size(), 1); + assertEquals(activityDtos.get(0).getId(), 123); + assertEquals(activityDtos.get(0).getImgId(), 1); + assertEquals( + activityDtos.get(0) + .getLocalDateTime() + .toString(), + "2025-08-15T10:00"); + } +} diff --git a/src/test/java/back/activitymanager/review/ReviewControllerTest.java b/src/test/java/back/activitymanager/review/ReviewControllerTest.java new file mode 100644 index 0000000..c9f90b4 --- /dev/null +++ b/src/test/java/back/activitymanager/review/ReviewControllerTest.java @@ -0,0 +1,100 @@ +package back.activitymanager.review; + +import back.activitymanager.Util; +import back.activitymanager.dto.review.ReviewCreateRequestDto; +import back.activitymanager.dto.review.ReviewDto; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import java.util.List; +import static io.restassured.RestAssured.given; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.jupiter.api.Assertions.assertEquals; + +@AutoConfigureMockMvc +@ActiveProfiles("test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class ReviewControllerTest { + + @LocalServerPort + private int port; + + @BeforeEach + void setUp() { + RestAssured.port = port; + } + + @Test + @DisplayName("Should return all reviews successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql", + "classpath:database/review/create-review.sql"}, + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/review/delete-reviews.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getReviews_successReturn_ReturnsReviewDto() { + List list = given() + .contentType(ContentType.JSON) + .when() + .get("/review") + .then() + .statusCode(200) + .extract() + .body() + .jsonPath() + .getList("content", ReviewDto.class); + + assertEquals(list.size(), 1); + assertEquals(list.get(0).id(), 1); + assertEquals(list.get(0).rate(), 4); + assertEquals(list.get(0).title(), "football"); + assertEquals(list.get(0) + .user() + .getEmail(), + "user@gmail.com"); + assertEquals(list.get(0) + .dateTime() + .toString(), + "2025-08-15T10:00"); + } + + @Test + @DisplayName("Should create a new reviews successfully") + @Sql(scripts = {"classpath:database/user/create-user.sql"}, + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = {"classpath:database/review/delete-reviews.sql", + "classpath:database/user/delete-users.sql"}, + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void createReview_successCreate_ReturnsReviewDto() { + + ReviewCreateRequestDto requestDto = new ReviewCreateRequestDto(); + requestDto.setComment("good game"); + requestDto.setRate(5); + requestDto.setTitle("football"); + + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .contentType(ContentType.JSON) + .body(requestDto) + .when() + .post("/review") + .then() + .statusCode(200) + .body("user.email", equalTo("user@gmail.com")) + .body("id", equalTo(1)) + .body("rate", equalTo(5)) + .body("title", equalTo("football")) + .body("comment", equalTo("good game")); + + } +} diff --git a/src/test/java/back/activitymanager/user/AuthControllerTest.java b/src/test/java/back/activitymanager/user/AuthControllerTest.java new file mode 100644 index 0000000..fa35dd8 --- /dev/null +++ b/src/test/java/back/activitymanager/user/AuthControllerTest.java @@ -0,0 +1,84 @@ +package back.activitymanager.user; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.StringStartsWith.startsWith; + +import back.activitymanager.dto.user.UserLoginDto; +import back.activitymanager.security.AuthenticationService; +import back.activitymanager.service.UserService; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.TestInstance; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +@AutoConfigureMockMvc +@ActiveProfiles("test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +class AuthControllerTest { + @LocalServerPort + private int port; + + @BeforeEach + void setUp() { + RestAssured.port = port; + } + + @Test + @DisplayName("Should register user and return UserResponseDto") + @Sql(scripts = "classpath:database/user/delete-users.sql", + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = "classpath:database/user/delete-user-with-id-1.sql", + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + void register_validRequest_returnsUserResponseDto() { + + RestAssured + .given() + .log().all() + .multiPart("email", "test@example.com") + .multiPart("phoneNumber", "+380968396281") + .multiPart("password", "securePassword123") + .multiPart("repeatPassword", "securePassword123") + .multiPart("firstName", "user") + .multiPart("lastName", "user") + .when() + .post("/auth/registration") + .then() + .log().all() + .statusCode(200) + .body("id", equalTo(1)) + .body("email", equalTo("test@example.com")) + .body("photo_path", equalTo(null)); + } + + @Test + @DisplayName("Should login user and return JWT token") + @Sql(scripts = "classpath:database/user/create-user.sql", + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = "classpath:database/user/delete-user-with-id-1.sql", + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + void login_validCredentials_returnsJwtToken() { + UserLoginDto loginDto = new UserLoginDto(); + loginDto.setEmail("user@gmail.com"); + loginDto.setPassword("securePassword123"); + + RestAssured + .given() + .contentType(ContentType.JSON) + .body(loginDto) + .when() + .post("/auth/login") + .then() + .statusCode(200) + .body("token", startsWith("eyJ")); + + } +} diff --git a/src/test/java/back/activitymanager/user/UserControllerTest.java b/src/test/java/back/activitymanager/user/UserControllerTest.java new file mode 100644 index 0000000..c5ff899 --- /dev/null +++ b/src/test/java/back/activitymanager/user/UserControllerTest.java @@ -0,0 +1,60 @@ +package back.activitymanager.user; + +import back.activitymanager.Util; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; +import org.junit.jupiter.api.*; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.jdbc.Sql; +import static org.hamcrest.core.IsEqual.equalTo; + +@AutoConfigureMockMvc +@ActiveProfiles("test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class UserControllerTest { + @LocalServerPort + private int port; + + @BeforeEach + void setUp() { + RestAssured.port = port; + } + + @Test + @DisplayName("Should login user and return information about current user") + @Sql(scripts = "classpath:database/user/create-user.sql", + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = "classpath:database/user/delete-user-with-id-1.sql", + executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) + public void getMe_validRequest_returnsUserResponseDto() { + + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .accept(ContentType.JSON) + .when() + .get("/users/me") + .then() + .statusCode(200) + .body("email", equalTo("user@gmail.com")); + } + + @Test + @DisplayName("Should login user and return information about current user") + @Sql(scripts = "classpath:database/user/create-user.sql", + executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + public void deleteMe_validRequest_returnsStatusNoContent() { + RestAssured + .given() + .header("Authorization", "Bearer " + Util.getToken()) + .accept(ContentType.JSON) + .when() + .delete("/users/deleteMe") + .then() + .statusCode(204); + } +} diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties new file mode 100644 index 0000000..553ee05 --- /dev/null +++ b/src/test/resources/application.properties @@ -0,0 +1,20 @@ +spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=root +spring.datasource.password=password +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect + +jwt.expiration=300000 +jwt.secret=veryveryveryveryveryveryveryveryveryveryveryveryverysecret + +dropbox.token=sl.u.DropBoxToken + +spring.servlet.multipart.max-file-size=128KB +spring.servlet.multipart.max-request-size=128KB + +spring.mail.host=smtp.gmail.com +spring.mail.port=587 +spring.mail.username=example@gmail.com +spring.mail.password=password +spring.mail.properties.mail.smtp.auth=true +spring.mail.properties.mail.smtp.starttls.enable=true diff --git a/src/test/resources/database/activity/create-activity-user.sql b/src/test/resources/database/activity/create-activity-user.sql new file mode 100644 index 0000000..a5f7d20 --- /dev/null +++ b/src/test/resources/database/activity/create-activity-user.sql @@ -0,0 +1,2 @@ +INSERT INTO users_activities(activity_id, user_id) +values (123, 1); diff --git a/src/test/resources/database/activity/create-activity.sql b/src/test/resources/database/activity/create-activity.sql new file mode 100644 index 0000000..63789a7 --- /dev/null +++ b/src/test/resources/database/activity/create-activity.sql @@ -0,0 +1,4 @@ + +INSERT INTO activities(id, name, for_who, number_of_people, category, format, lat, lng, img_id, local_date_time, is_deleted, user_id) +values (123, 'football', 'men', 11, 'sport', 'format', 0, 0, 1, '2025-08-15 10:00:00', false, 1); + diff --git a/src/test/resources/database/activity/delete-activities.sql b/src/test/resources/database/activity/delete-activities.sql new file mode 100644 index 0000000..6387d9a --- /dev/null +++ b/src/test/resources/database/activity/delete-activities.sql @@ -0,0 +1 @@ +DELETE FROM activities; diff --git a/src/test/resources/database/activity/delete-activity-user.sql b/src/test/resources/database/activity/delete-activity-user.sql new file mode 100644 index 0000000..9993429 --- /dev/null +++ b/src/test/resources/database/activity/delete-activity-user.sql @@ -0,0 +1 @@ +DELETE FROM users_activities; diff --git a/src/test/resources/database/review/create-review.sql b/src/test/resources/database/review/create-review.sql new file mode 100644 index 0000000..16d39e1 --- /dev/null +++ b/src/test/resources/database/review/create-review.sql @@ -0,0 +1,2 @@ +INSERT INTO reviews(id, title, rate, user_id, comment, date_time) +VALUES (1, 'football', 4, 1, 'good game', '2025-08-15 10:00:00'); diff --git a/src/test/resources/database/review/delete-reviews.sql b/src/test/resources/database/review/delete-reviews.sql new file mode 100644 index 0000000..5e74a44 --- /dev/null +++ b/src/test/resources/database/review/delete-reviews.sql @@ -0,0 +1 @@ +DELETE FROM reviews; diff --git a/src/test/resources/database/user/create-user.sql b/src/test/resources/database/user/create-user.sql new file mode 100644 index 0000000..52afa84 --- /dev/null +++ b/src/test/resources/database/user/create-user.sql @@ -0,0 +1,10 @@ +DELETE FROM users; +DELETE FROM roles; + +ALTER TABLE activities ALTER COLUMN is_deleted BOOLEAN; + +INSERT INTO users(id, password, email, first_name, last_name, phone_number, photo_path) +VALUES (1, '$2a$10$tsXTqLug0brd6r.1.K8T2uGvoNSOK5RzeA6Yq6lZi/32wTfA6YIwe', 'user@gmail.com', 'user', 'user', '+380968396281', 'default'); + +INSERT INTO roles (id, name) VALUES (1, 'ROLE_USER'), (2, 'ROLE_ADMIN'); +INSERT INTO users_roles (user_id, role_id) VALUES (1, 1); diff --git a/src/test/resources/database/user/delete-user-with-id-1.sql b/src/test/resources/database/user/delete-user-with-id-1.sql new file mode 100644 index 0000000..840eed7 --- /dev/null +++ b/src/test/resources/database/user/delete-user-with-id-1.sql @@ -0,0 +1 @@ +DELETE FROM users WHERE id = 1; diff --git a/src/test/resources/database/user/delete-users.sql b/src/test/resources/database/user/delete-users.sql new file mode 100644 index 0000000..6f114a7 --- /dev/null +++ b/src/test/resources/database/user/delete-users.sql @@ -0,0 +1 @@ +DELETE FROM users;