From b99043eff04e77e784bddb6964b93d8d8c2e7f73 Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 13:37:29 +0300 Subject: [PATCH 1/8] template --- .../controller/cart/CartControllerTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index 52a966b..6f8b8d6 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -109,4 +109,20 @@ void deleteItemFromCart_UserNotFound() { .andExpect(jsonPath("$.status").value(notFoundCode)) .andExpect(jsonPath("$.message").value(userNotFound)); } + + // тут начинаются сложные тесты + + // просмотр корзины пользователя и размещение заказа + @Test + @SneakyThrows + void getCartInfoAndPlaceOrder() { + + } + + // добавление препарата в корзину и его удаление из корзины + @Test + @SneakyThrows + void addItemIntoCartAndDeleteItemFromCart() { + + } } From 6d17307b4cf37c51a994cbec62b3c40babfc3678 Mon Sep 17 00:00:00 2001 From: LysenkoAleksandra Date: Sun, 17 Mar 2024 19:07:36 +0300 Subject: [PATCH 2/8] add item hard integration tests --- .../org/example/controller/TestObjects.java | 15 +++--- .../item/ItemQueryControllerTest.java | 48 +++++++++++++++++++ 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/example/controller/TestObjects.java b/src/test/java/org/example/controller/TestObjects.java index 3a479ad..9dbadda 100644 --- a/src/test/java/org/example/controller/TestObjects.java +++ b/src/test/java/org/example/controller/TestObjects.java @@ -1,8 +1,5 @@ package org.example.controller; -import java.sql.Date; -import java.util.Arrays; -import java.util.List; import org.example.dto.cart.CartDto; import org.example.dto.cart.CartToItemDto; import org.example.dto.item.ItemDto; @@ -13,6 +10,10 @@ import org.example.dto.user.SpecialityDto; import org.example.dto.user.UserAccountDto; +import java.sql.Date; +import java.util.Arrays; +import java.util.List; + public class TestObjects { public static TypeDto commonType; public static TypeDto receiptType; @@ -130,10 +131,10 @@ public class TestObjects { simpleUser = new UserAccountDto(-1L, "Иванов Иван Иванович", "+79260567450", simpleUserRole, null); - pharmacist = - new UserAccountDto(-2L, "Глазов Степан Фёдорович", "+79310367450", doctorRole, speciality); - doctor = new UserAccountDto(-3L, "Главный Пётр Петрович", "+79510367450", pharmacistRole, null); - itemsFirstOrder = new ItemDto[] {receipt}; + doctor = + new UserAccountDto(-2L, "Глазов Степан Фёдорович", "+79310367450", doctorRole, speciality); + pharmacist = new UserAccountDto(-3L, "Главный Пётр Петрович", "+79510367450", pharmacistRole, null); + itemsFirstOrder = new ItemDto[]{receipt}; itemsSecondOrder = new ItemDto[] {special}; itemsThirdOrder = new ItemDto[] {receipt, special}; itemsFirstOrderSecUser = new ItemDto[] {special}; diff --git a/src/test/java/org/example/controller/item/ItemQueryControllerTest.java b/src/test/java/org/example/controller/item/ItemQueryControllerTest.java index 40c1043..fc039fa 100644 --- a/src/test/java/org/example/controller/item/ItemQueryControllerTest.java +++ b/src/test/java/org/example/controller/item/ItemQueryControllerTest.java @@ -3,13 +3,16 @@ import static org.example.controller.TestObjects.*; import static org.hamcrest.Matchers.hasSize; import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import lombok.SneakyThrows; import org.example.controller.MvcUtil; import org.example.dto.item.ItemDto; +import org.example.dto.user.UserAccountDto; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -83,4 +86,49 @@ void getAllItemsBySpecId() { ItemDto[] resultDto = mvcUtil.readResponseValue(ItemDto[].class, result); assertArrayEquals(new ItemDto[] {special}, resultDto); } + + //аутентификация пользователя фармацевта и просмотр всех препаратов + @Test + @SneakyThrows + void getAllItemsByDoc() { + ResultActions result = + mockMvc + .perform( + post("/api/accounts/login") + .param("phone", doctor.phone()) + .param("password", "654321")) + .andExpect(status().isOk()); + UserAccountDto resultDto = mvcUtil.readResponseValue(UserAccountDto.class, result); + assertEquals(doctor, resultDto); + + ResultActions resultItem = + mockMvc + .perform(get("/api/item/doc/all?user_id="+resultDto.id())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(2))); + ItemDto[] resultItemDto = mvcUtil.readResponseValue(ItemDto[].class, resultItem); + assertArrayEquals(new ItemDto[] {special, receipt}, resultItemDto); + } + + //аутентификация пользователя фармацевта и просмотр всех препаратов + @Test + @SneakyThrows + void getAllItemsBySpec() { + ResultActions result = + mockMvc + .perform( + post("/api/accounts/login") + .param("phone", doctor.phone()) + .param("password", "654321")) + .andExpect(status().isOk()); + UserAccountDto resultDto = mvcUtil.readResponseValue(UserAccountDto.class, result); + assertEquals(doctor, resultDto); + ResultActions resultItem = + mockMvc + .perform(get("/api/item/type/category?speciality_id="+resultDto.speciality().id())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(1))); + ItemDto[] resultItemDto = mvcUtil.readResponseValue(ItemDto[].class, resultItem); + assertArrayEquals(new ItemDto[] {special}, resultItemDto); + } } From e74104fddc78fc9c402e3aea3b74a8f0e8303da4 Mon Sep 17 00:00:00 2001 From: LysenkoAleksandra Date: Sun, 17 Mar 2024 19:10:03 +0300 Subject: [PATCH 3/8] style fix --- .../org/example/controller/TestObjects.java | 14 +++--- .../item/ItemQueryControllerTest.java | 44 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/test/java/org/example/controller/TestObjects.java b/src/test/java/org/example/controller/TestObjects.java index 9dbadda..54fdd2b 100644 --- a/src/test/java/org/example/controller/TestObjects.java +++ b/src/test/java/org/example/controller/TestObjects.java @@ -1,5 +1,8 @@ package org.example.controller; +import java.sql.Date; +import java.util.Arrays; +import java.util.List; import org.example.dto.cart.CartDto; import org.example.dto.cart.CartToItemDto; import org.example.dto.item.ItemDto; @@ -10,10 +13,6 @@ import org.example.dto.user.SpecialityDto; import org.example.dto.user.UserAccountDto; -import java.sql.Date; -import java.util.Arrays; -import java.util.List; - public class TestObjects { public static TypeDto commonType; public static TypeDto receiptType; @@ -132,9 +131,10 @@ public class TestObjects { simpleUser = new UserAccountDto(-1L, "Иванов Иван Иванович", "+79260567450", simpleUserRole, null); doctor = - new UserAccountDto(-2L, "Глазов Степан Фёдорович", "+79310367450", doctorRole, speciality); - pharmacist = new UserAccountDto(-3L, "Главный Пётр Петрович", "+79510367450", pharmacistRole, null); - itemsFirstOrder = new ItemDto[]{receipt}; + new UserAccountDto(-2L, "Глазов Степан Фёдорович", "+79310367450", doctorRole, speciality); + pharmacist = + new UserAccountDto(-3L, "Главный Пётр Петрович", "+79510367450", pharmacistRole, null); + itemsFirstOrder = new ItemDto[] {receipt}; itemsSecondOrder = new ItemDto[] {special}; itemsThirdOrder = new ItemDto[] {receipt, special}; itemsFirstOrderSecUser = new ItemDto[] {special}; diff --git a/src/test/java/org/example/controller/item/ItemQueryControllerTest.java b/src/test/java/org/example/controller/item/ItemQueryControllerTest.java index fc039fa..501f42e 100644 --- a/src/test/java/org/example/controller/item/ItemQueryControllerTest.java +++ b/src/test/java/org/example/controller/item/ItemQueryControllerTest.java @@ -87,47 +87,47 @@ void getAllItemsBySpecId() { assertArrayEquals(new ItemDto[] {special}, resultDto); } - //аутентификация пользователя фармацевта и просмотр всех препаратов + // аутентификация пользователя фармацевта и просмотр всех препаратов @Test @SneakyThrows void getAllItemsByDoc() { ResultActions result = - mockMvc - .perform( - post("/api/accounts/login") - .param("phone", doctor.phone()) - .param("password", "654321")) - .andExpect(status().isOk()); + mockMvc + .perform( + post("/api/accounts/login") + .param("phone", doctor.phone()) + .param("password", "654321")) + .andExpect(status().isOk()); UserAccountDto resultDto = mvcUtil.readResponseValue(UserAccountDto.class, result); assertEquals(doctor, resultDto); ResultActions resultItem = - mockMvc - .perform(get("/api/item/doc/all?user_id="+resultDto.id())) - .andExpect(status().isOk()) - .andExpect(jsonPath("$", hasSize(2))); + mockMvc + .perform(get("/api/item/doc/all?user_id=" + resultDto.id())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(2))); ItemDto[] resultItemDto = mvcUtil.readResponseValue(ItemDto[].class, resultItem); assertArrayEquals(new ItemDto[] {special, receipt}, resultItemDto); } - //аутентификация пользователя фармацевта и просмотр всех препаратов + // аутентификация пользователя фармацевта и просмотр всех препаратов @Test @SneakyThrows void getAllItemsBySpec() { ResultActions result = - mockMvc - .perform( - post("/api/accounts/login") - .param("phone", doctor.phone()) - .param("password", "654321")) - .andExpect(status().isOk()); + mockMvc + .perform( + post("/api/accounts/login") + .param("phone", doctor.phone()) + .param("password", "654321")) + .andExpect(status().isOk()); UserAccountDto resultDto = mvcUtil.readResponseValue(UserAccountDto.class, result); assertEquals(doctor, resultDto); ResultActions resultItem = - mockMvc - .perform(get("/api/item/type/category?speciality_id="+resultDto.speciality().id())) - .andExpect(status().isOk()) - .andExpect(jsonPath("$", hasSize(1))); + mockMvc + .perform(get("/api/item/type/category?speciality_id=" + resultDto.speciality().id())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(1))); ItemDto[] resultItemDto = mvcUtil.readResponseValue(ItemDto[].class, resultItem); assertArrayEquals(new ItemDto[] {special}, resultItemDto); } From 81ecd5cd16b3705913e7c100fac5a7c80f1d6e48 Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 20:14:51 +0300 Subject: [PATCH 4/8] template --- .../controller/cart/CartControllerTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index 6f8b8d6..310d2a7 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -123,6 +123,27 @@ void getCartInfoAndPlaceOrder() { @Test @SneakyThrows void addItemIntoCartAndDeleteItemFromCart() { + ResultActions result = + mockMvc + .perform( + post("/api/cart/add") + .param("item_id", "-1") + .param("user_id", "-2") + .param("count", "1")) + .andExpect(status().isOk()); + mvcUtil.assertContentEquals(result, objectMapper.writeValueAsString(receipt)); + + ResultActions result2 = + mockMvc + .perform(delete("/api/cart/delete").param("item_id", "-2").param("user_id", "-2")) + .andExpect(status().isOk()); + mvcUtil.assertContentEquals(result2, objectMapper.writeValueAsString(special)); + } + + // аутентификация пользователя, добавление товара в корзину и просмотр корзины + @Test + @SneakyThrows + void authUserAddItemIntoCartAndCheckCart() { } } From ece45da4de4dbf466a3400dc4fb00fff2619dc8a Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 20:19:06 +0300 Subject: [PATCH 5/8] add test addItemIntoCartAndDeleteItemFromCart --- .../java/org/example/controller/cart/CartControllerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index 310d2a7..7b3b84a 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -135,9 +135,9 @@ void addItemIntoCartAndDeleteItemFromCart() { ResultActions result2 = mockMvc - .perform(delete("/api/cart/delete").param("item_id", "-2").param("user_id", "-2")) + .perform(delete("/api/cart/delete").param("item_id", "-1").param("user_id", "-2")) .andExpect(status().isOk()); - mvcUtil.assertContentEquals(result2, objectMapper.writeValueAsString(special)); + mvcUtil.assertContentEquals(result2, objectMapper.writeValueAsString(receipt)); } // аутентификация пользователя, добавление товара в корзину и просмотр корзины From c3976d48c8b55e0ba1a8049304b881fb50b972cd Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 20:37:16 +0300 Subject: [PATCH 6/8] fix tests --- .../org/example/controller/TestObjects.java | 5 +++ .../account/AccountControllerTest.java | 2 +- .../controller/cart/CartControllerTest.java | 31 +++++++++++++++++-- src/test/resources/test-database-content.sql | 9 ++++-- 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/test/java/org/example/controller/TestObjects.java b/src/test/java/org/example/controller/TestObjects.java index 54fdd2b..002a0b9 100644 --- a/src/test/java/org/example/controller/TestObjects.java +++ b/src/test/java/org/example/controller/TestObjects.java @@ -40,6 +40,7 @@ public class TestObjects { public static ItemDto special; public static Long userId; + public static Long userIdTest; public static Date creationDate; public static Date deliveryDate; @@ -61,6 +62,7 @@ public class TestObjects { public static CartDto cart; public static CartDto cartSecUser; + public static CartDto cartTestUser; public static CartToItemDto cartItem1; public static CartToItemDto cartItem2; public static CartToItemDto[] cartItems; @@ -84,6 +86,8 @@ public class TestObjects { pharmacyId = -1L; receiptItemId = -1L; + userIdTest = -4L; + SpecialityDto speciality = new SpecialityDto(-1L, "терапевт"); firstPharmacy = @@ -195,6 +199,7 @@ public class TestObjects { cart = new CartDto(-1L, userId, Arrays.stream(cartItems).toList()); cartSecUser = new CartDto(-2L, -2L, Arrays.stream(cartItemsSecUser).toList()); + cartTestUser = new CartDto(-4L, -4L, Arrays.stream(cartItemsSecUser).toList()); badRequest = 400; notFoundCode = 404; diff --git a/src/test/java/org/example/controller/account/AccountControllerTest.java b/src/test/java/org/example/controller/account/AccountControllerTest.java index b5a1af0..213bd66 100644 --- a/src/test/java/org/example/controller/account/AccountControllerTest.java +++ b/src/test/java/org/example/controller/account/AccountControllerTest.java @@ -104,7 +104,7 @@ void logoutSuccess() { @SneakyThrows void logoutFailed() { mockMvc - .perform(post("/api/accounts/logout").param("user_id", "-4")) + .perform(post("/api/accounts/logout").param("user_id", "-5")) .andExpectAll( status().isNotFound(), jsonPath("$.*", hasSize(3)), diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index 7b3b84a..c5d694c 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -1,10 +1,17 @@ package org.example.controller.cart; import static org.example.controller.TestObjects.cartSecUser; +import static org.example.controller.TestObjects.cartTestUser; +import static org.example.controller.TestObjects.creationDate; +import static org.example.controller.TestObjects.creationDateStr; +import static org.example.controller.TestObjects.deliveryDate; +import static org.example.controller.TestObjects.deliveryDateStr; import static org.example.controller.TestObjects.notFound; import static org.example.controller.TestObjects.notFoundCode; import static org.example.controller.TestObjects.receipt; import static org.example.controller.TestObjects.special; +import static org.example.controller.TestObjects.sumPrice; +import static org.example.controller.TestObjects.userId; import static org.example.controller.TestObjects.userNotFound; import static org.hamcrest.Matchers.hasSize; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; @@ -44,7 +51,7 @@ void getAllItemsInCart() { @SneakyThrows void getAllItemsInCart_UserNotFound() { mockMvc - .perform(get("/api/cart/1")) + .perform(get("/api/cart/-5")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -70,7 +77,7 @@ void addItemToCart() { void addItemToCart_UserNotFound() { mockMvc .perform( - post("/api/cart/add").param("item_id", "-1").param("user_id", "1").param("count", "1")) + post("/api/cart/add").param("item_id", "-1").param("user_id", "-5").param("count", "1")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -103,7 +110,7 @@ void deleteItemFromCart() { @SneakyThrows void deleteItemFromCart_UserNotFound() { mockMvc - .perform(delete("/api/cart/delete").param("item_id", "-1").param("user_id", "1")) + .perform(delete("/api/cart/delete").param("item_id", "-1").param("user_id", "-5")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -112,11 +119,29 @@ void deleteItemFromCart_UserNotFound() { // тут начинаются сложные тесты + // тут УДАЛЯЕТСЯ из корзины, при перезапуске тестов нужно обновить тестовую бд !! // просмотр корзины пользователя и размещение заказа @Test @SneakyThrows void getCartInfoAndPlaceOrder() { + ResultActions result = mockMvc.perform(get("/api/cart/-4")).andExpect(status().isOk()); + mvcUtil.assertContentEquals(result, objectMapper.writeValueAsString(cartTestUser)); + mockMvc + .perform( + post("/api/order") + .param("user_id", String.valueOf(-4L)) + .param("creation_date", creationDate.toString()) + .param("delivery_date", deliveryDate.toString()) + .param("sum_price", String.valueOf(sumPrice)) + .param("pharmacy_id", "-1") + .param("items", "-2")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.user_id").value(-4L)) + .andExpect(jsonPath("$.creation_date").value(creationDateStr)) + .andExpect(jsonPath("$.delivery_date").value(deliveryDateStr)) + .andExpect(jsonPath("$.sum_price").value(String.valueOf(sumPrice))) + .andExpect(jsonPath("$.pharmacy.id").value("-1")); } // добавление препарата в корзину и его удаление из корзины diff --git a/src/test/resources/test-database-content.sql b/src/test/resources/test-database-content.sql index bb34e5b..4f1db9a 100644 --- a/src/test/resources/test-database-content.sql +++ b/src/test/resources/test-database-content.sql @@ -41,7 +41,8 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto; INSERT INTO user_account (id, full_name, password_hash, phone, role_id, speciality_id) VALUES (-1, 'Иванов Иван Иванович', digest('123456', 'sha256'), '+79260567450', -1, NULL), (-2, 'Глазов Степан Фёдорович', digest('654321', 'sha256'), '+79310367450', -2, -1), - (-3, 'Главный Пётр Петрович', digest('12345', 'sha256'), '+79510367450', -3, NULL); + (-3, 'Главный Пётр Петрович', digest('12345', 'sha256'), '+79510367450', -3, NULL), + (-4, 'Я тестовый пользователь', digest('12345', 'sha256'), '+79510367457', -1, NULL); INSERT INTO orders (creation_date, delivery_date, sum_price, id, pharmacy_id, user_id) VALUES ('2024-01-11', '2024-01-16', 100500, -1, -1, -1), @@ -59,9 +60,11 @@ VALUES (1, -1, -1, -1), INSERT INTO cart (id, user_id) VALUES (-1, -1), (-2, -2), - (-3, -3); + (-3, -3), + (-4, -4); INSERT INTO cart_to_item (quantity, cart_id, id, item_id) VALUES (2, -1, -1, -1), (1, -1, -2, -2), - (1, -2, -3, -2); + (1, -2, -3, -2), + (1, -4, -4, -2); From 2a4454ac6f4d40508e310ba88e27ad1085455ade Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 21:03:21 +0300 Subject: [PATCH 7/8] done --- src/main/resources/database-content.sql | 4 +-- .../org/example/controller/TestObjects.java | 10 ++++++ .../account/AccountControllerTest.java | 2 +- .../controller/cart/CartControllerTest.java | 33 +++++++++++++++++-- .../controller/user/UserControllerTest.java | 2 +- src/test/resources/test-database-content.sql | 6 ++-- 6 files changed, 48 insertions(+), 9 deletions(-) diff --git a/src/main/resources/database-content.sql b/src/main/resources/database-content.sql index 9cee09b..7ccc8c7 100644 --- a/src/main/resources/database-content.sql +++ b/src/main/resources/database-content.sql @@ -259,8 +259,8 @@ VALUES (10, -1, -1, -1), (5, -50, -19, -5), (5, -51, -20, -5); -CREATE -EXTENSION pgcrypto; +CREATE EXTENSION IF NOT EXISTS pgcrypto; + INSERT INTO user_account (id, full_name, password_hash, phone, role_id, speciality_id) VALUES (-1, 'Иванов Иван Иванович', digest('123456', 'sha256'), '+79260567450', -1, NULL), (-2, 'Глазов Степан Фёдорович', digest('654321', 'sha256'), '+79310367450', -2, -5), diff --git a/src/test/java/org/example/controller/TestObjects.java b/src/test/java/org/example/controller/TestObjects.java index 002a0b9..df11b4f 100644 --- a/src/test/java/org/example/controller/TestObjects.java +++ b/src/test/java/org/example/controller/TestObjects.java @@ -57,16 +57,20 @@ public class TestObjects { public static RoleDto pharmacistRole; public static UserAccountDto simpleUser; + public static UserAccountDto testUser; + public static UserAccountDto test2User; public static UserAccountDto doctor; public static UserAccountDto pharmacist; public static CartDto cart; public static CartDto cartSecUser; public static CartDto cartTestUser; + public static CartDto cartTest2User; public static CartToItemDto cartItem1; public static CartToItemDto cartItem2; public static CartToItemDto[] cartItems; public static CartToItemDto[] cartItemsSecUser; + public static CartToItemDto[] cartItemsTestUser; public static Integer badRequest; public static Integer notFoundCode; @@ -138,6 +142,10 @@ public class TestObjects { new UserAccountDto(-2L, "Глазов Степан Фёдорович", "+79310367450", doctorRole, speciality); pharmacist = new UserAccountDto(-3L, "Главный Пётр Петрович", "+79510367450", pharmacistRole, null); + testUser = + new UserAccountDto(-4L, "Я тестовый пользователь", "+79510367457", simpleUserRole, null); + test2User = + new UserAccountDto(-5L, "Я тоже пользователь", "+79510367458", simpleUserRole, null); itemsFirstOrder = new ItemDto[] {receipt}; itemsSecondOrder = new ItemDto[] {special}; itemsThirdOrder = new ItemDto[] {receipt, special}; @@ -196,10 +204,12 @@ public class TestObjects { cartItem2 = new CartToItemDto(special, 1); cartItems = new CartToItemDto[] {cartItem2, cartItem1}; cartItemsSecUser = new CartToItemDto[] {cartItem2}; + cartItemsTestUser = new CartToItemDto[] {cartItem1}; cart = new CartDto(-1L, userId, Arrays.stream(cartItems).toList()); cartSecUser = new CartDto(-2L, -2L, Arrays.stream(cartItemsSecUser).toList()); cartTestUser = new CartDto(-4L, -4L, Arrays.stream(cartItemsSecUser).toList()); + cartTest2User = new CartDto(-5L, -5L, Arrays.stream(cartItemsTestUser).toList()); badRequest = 400; notFoundCode = 404; diff --git a/src/test/java/org/example/controller/account/AccountControllerTest.java b/src/test/java/org/example/controller/account/AccountControllerTest.java index 213bd66..69ecfda 100644 --- a/src/test/java/org/example/controller/account/AccountControllerTest.java +++ b/src/test/java/org/example/controller/account/AccountControllerTest.java @@ -104,7 +104,7 @@ void logoutSuccess() { @SneakyThrows void logoutFailed() { mockMvc - .perform(post("/api/accounts/logout").param("user_id", "-5")) + .perform(post("/api/accounts/logout").param("user_id", "-6")) .andExpectAll( status().isNotFound(), jsonPath("$.*", hasSize(3)), diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index c5d694c..711c5ba 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -1,6 +1,7 @@ package org.example.controller.cart; import static org.example.controller.TestObjects.cartSecUser; +import static org.example.controller.TestObjects.cartTest2User; import static org.example.controller.TestObjects.cartTestUser; import static org.example.controller.TestObjects.creationDate; import static org.example.controller.TestObjects.creationDateStr; @@ -9,11 +10,15 @@ import static org.example.controller.TestObjects.notFound; import static org.example.controller.TestObjects.notFoundCode; import static org.example.controller.TestObjects.receipt; +import static org.example.controller.TestObjects.simpleUser; import static org.example.controller.TestObjects.special; import static org.example.controller.TestObjects.sumPrice; +import static org.example.controller.TestObjects.test2User; +import static org.example.controller.TestObjects.testUser; import static org.example.controller.TestObjects.userId; import static org.example.controller.TestObjects.userNotFound; import static org.hamcrest.Matchers.hasSize; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; @@ -23,6 +28,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import lombok.SneakyThrows; import org.example.controller.MvcUtil; +import org.example.dto.user.UserAccountDto; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -51,7 +57,7 @@ void getAllItemsInCart() { @SneakyThrows void getAllItemsInCart_UserNotFound() { mockMvc - .perform(get("/api/cart/-5")) + .perform(get("/api/cart/-6")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -77,7 +83,7 @@ void addItemToCart() { void addItemToCart_UserNotFound() { mockMvc .perform( - post("/api/cart/add").param("item_id", "-1").param("user_id", "-5").param("count", "1")) + post("/api/cart/add").param("item_id", "-1").param("user_id", "-6").param("count", "1")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -110,7 +116,7 @@ void deleteItemFromCart() { @SneakyThrows void deleteItemFromCart_UserNotFound() { mockMvc - .perform(delete("/api/cart/delete").param("item_id", "-1").param("user_id", "-5")) + .perform(delete("/api/cart/delete").param("item_id", "-1").param("user_id", "-6")) .andExpectAll(status().isNotFound(), jsonPath("$.*", hasSize(3))) .andExpect(jsonPath("$.code").value(userNotFound)) .andExpect(jsonPath("$.status").value(notFoundCode)) @@ -169,6 +175,27 @@ void addItemIntoCartAndDeleteItemFromCart() { @Test @SneakyThrows void authUserAddItemIntoCartAndCheckCart() { + ResultActions result = + mockMvc + .perform( + post("/api/accounts/login") + .param("phone", "+79510367458") + .param("password", "12345")) + .andExpect(status().isOk()); + UserAccountDto resultDto = mvcUtil.readResponseValue(UserAccountDto.class, result); + assertEquals(test2User, resultDto); + + ResultActions result2 = + mockMvc + .perform( + post("/api/cart/add") + .param("item_id", "-1") + .param("user_id", "-5") + .param("count", "2")) + .andExpect(status().isOk()); + mvcUtil.assertContentEquals(result2, objectMapper.writeValueAsString(receipt)); + ResultActions result3 = mockMvc.perform(get("/api/cart/-5")).andExpect(status().isOk()); + mvcUtil.assertContentEquals(result3, objectMapper.writeValueAsString(cartTest2User)); } } diff --git a/src/test/java/org/example/controller/user/UserControllerTest.java b/src/test/java/org/example/controller/user/UserControllerTest.java index be0b101..f5a233a 100644 --- a/src/test/java/org/example/controller/user/UserControllerTest.java +++ b/src/test/java/org/example/controller/user/UserControllerTest.java @@ -37,7 +37,7 @@ void getUserInfoSuccess() { @SneakyThrows void getUserInfoFailed() { mockMvc - .perform(get("/api/info/-5")) + .perform(get("/api/info/-6")) .andExpectAll( status().isNotFound(), jsonPath("$.*", hasSize(3)), diff --git a/src/test/resources/test-database-content.sql b/src/test/resources/test-database-content.sql index 4f1db9a..7ff7224 100644 --- a/src/test/resources/test-database-content.sql +++ b/src/test/resources/test-database-content.sql @@ -42,7 +42,8 @@ INSERT INTO user_account (id, full_name, password_hash, phone, role_id, speciali VALUES (-1, 'Иванов Иван Иванович', digest('123456', 'sha256'), '+79260567450', -1, NULL), (-2, 'Глазов Степан Фёдорович', digest('654321', 'sha256'), '+79310367450', -2, -1), (-3, 'Главный Пётр Петрович', digest('12345', 'sha256'), '+79510367450', -3, NULL), - (-4, 'Я тестовый пользователь', digest('12345', 'sha256'), '+79510367457', -1, NULL); + (-4, 'Я тестовый пользователь', digest('12345', 'sha256'), '+79510367457', -1, NULL), + (-5, 'Я тоже пользователь', digest('12345', 'sha256'), '+79510367458', -1, NULL);; INSERT INTO orders (creation_date, delivery_date, sum_price, id, pharmacy_id, user_id) VALUES ('2024-01-11', '2024-01-16', 100500, -1, -1, -1), @@ -61,7 +62,8 @@ INSERT INTO cart (id, user_id) VALUES (-1, -1), (-2, -2), (-3, -3), - (-4, -4); + (-4, -4), + (-5, -5); INSERT INTO cart_to_item (quantity, cart_id, id, item_id) VALUES (2, -1, -1, -1), From fbb4508f93f1500e45f54cb27024ab61fed1bf87 Mon Sep 17 00:00:00 2001 From: byzaya Date: Sun, 17 Mar 2024 21:04:04 +0300 Subject: [PATCH 8/8] style --- .../java/org/example/controller/cart/CartControllerTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/java/org/example/controller/cart/CartControllerTest.java b/src/test/java/org/example/controller/cart/CartControllerTest.java index 711c5ba..d05996d 100644 --- a/src/test/java/org/example/controller/cart/CartControllerTest.java +++ b/src/test/java/org/example/controller/cart/CartControllerTest.java @@ -10,12 +10,9 @@ import static org.example.controller.TestObjects.notFound; import static org.example.controller.TestObjects.notFoundCode; import static org.example.controller.TestObjects.receipt; -import static org.example.controller.TestObjects.simpleUser; import static org.example.controller.TestObjects.special; import static org.example.controller.TestObjects.sumPrice; import static org.example.controller.TestObjects.test2User; -import static org.example.controller.TestObjects.testUser; -import static org.example.controller.TestObjects.userId; import static org.example.controller.TestObjects.userNotFound; import static org.hamcrest.Matchers.hasSize; import static org.junit.jupiter.api.Assertions.assertEquals;