Co-authored-by: TakahashiNg <83152264+TakahashiNguyen@users.noreply.github.com> Reviewed-on: #44
This commit was merged in pull request #44.
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
<quarkus.platform.version>3.32.4</quarkus.platform.version>
|
||||
<skipITs>true</skipITs>
|
||||
<surefire-plugin.version>3.5.4</surefire-plugin.version>
|
||||
<org.mapstruct.version>1.6.3</org.mapstruct.version>
|
||||
<org.projectlombok.version>1.18.46</org.projectlombok.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -53,6 +55,22 @@
|
||||
<artifactId>quarkus-security</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${org.projectlombok.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkiverse.mapstruct</groupId>
|
||||
<artifactId>quarkus-mapstruct</artifactId>
|
||||
<version>1.1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
<version>${org.mapstruct.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.datafaker</groupId>
|
||||
<artifactId>datafaker</artifactId>
|
||||
@@ -135,6 +153,18 @@
|
||||
<version>${compiler-plugin.version}</version>
|
||||
<configuration>
|
||||
<parameters>true</parameters>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>${org.mapstruct.version}</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${org.projectlombok.version}</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.drinkool.dtos;
|
||||
|
||||
import com.drinkool.interfaces.MenuItemInterface;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.eclipse.microprofile.graphql.Input;
|
||||
import org.eclipse.microprofile.graphql.NonNull;
|
||||
|
||||
@Input
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class AddMenuItem implements MenuItemInterface {
|
||||
|
||||
@NonNull
|
||||
private String name;
|
||||
|
||||
@NonNull
|
||||
private Double price;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.drinkool.dtos;
|
||||
|
||||
import com.drinkool.entities.MenuItemEntity;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
||||
|
||||
@Mapper(componentModel = "cdi")
|
||||
public interface DtoMapper {
|
||||
@BeanMapping(
|
||||
nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE
|
||||
)
|
||||
void updateMenuItemToEntity(
|
||||
UpdateMenuItem input,
|
||||
@MappingTarget MenuItemEntity entity
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.drinkool.dtos;
|
||||
|
||||
import com.drinkool.interfaces.EntityInterface;
|
||||
import com.drinkool.interfaces.MenuItemInterface;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import java.util.UUID;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.eclipse.microprofile.graphql.Input;
|
||||
import org.eclipse.microprofile.graphql.NonNull;
|
||||
|
||||
@Input
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class UpdateMenuItem implements EntityInterface, MenuItemInterface {
|
||||
|
||||
@NonNull
|
||||
UUID id;
|
||||
|
||||
String name;
|
||||
|
||||
Double price;
|
||||
}
|
||||
@@ -25,7 +25,7 @@ public class EateryEntity extends BaseEntity {
|
||||
cascade = CascadeType.ALL,
|
||||
orphanRemoval = true
|
||||
)
|
||||
public List<MenuItemEntity> menus = new ArrayList<>();
|
||||
public List<MenuItemEntity> menuItems = new ArrayList<>();
|
||||
|
||||
public EateryEntity() {}
|
||||
|
||||
|
||||
@@ -1,36 +1,43 @@
|
||||
package com.drinkool.entities;
|
||||
|
||||
import com.drinkool.dtos.AddMenuItem;
|
||||
import com.drinkool.interfaces.MenuItemInterface;
|
||||
import com.drinkool.lib.entities.BaseEntity;
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.transaction.Transactional;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Table
|
||||
public class MenuItemEntity extends BaseEntity {
|
||||
@Getter
|
||||
@Setter
|
||||
public class MenuItemEntity extends BaseEntity implements MenuItemInterface {
|
||||
|
||||
@Column(nullable = false)
|
||||
public String name;
|
||||
|
||||
@Column(nullable = false)
|
||||
public double price;
|
||||
public Double price;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "eatery_id")
|
||||
public EateryEntity eatery;
|
||||
|
||||
MenuItemEntity() {}
|
||||
|
||||
MenuItemEntity(MenuItemInterface input) {
|
||||
this.setName(input.getName());
|
||||
this.setPrice(input.getPrice());
|
||||
}
|
||||
|
||||
/**
|
||||
* Phương thức tiện ích để tạo nhanh Menu Item từ tên
|
||||
*/
|
||||
@Transactional
|
||||
public static MenuItemEntity create(
|
||||
EateryEntity eatery,
|
||||
String name,
|
||||
double price
|
||||
) {
|
||||
MenuItemEntity menuItem = new MenuItemEntity();
|
||||
public static MenuItemEntity create(EateryEntity eatery, AddMenuItem input) {
|
||||
MenuItemEntity menuItem = new MenuItemEntity(input);
|
||||
|
||||
menuItem.name = name;
|
||||
menuItem.price = price;
|
||||
menuItem.eatery = eatery;
|
||||
|
||||
menuItem.persist();
|
||||
|
||||
@@ -2,9 +2,12 @@ package com.drinkool.services;
|
||||
|
||||
import com.drinkool.InternalValue;
|
||||
import com.drinkool.Role;
|
||||
import com.drinkool.dtos.event.ManagerCreate;
|
||||
import com.drinkool.dtos.AddMenuItem;
|
||||
import com.drinkool.dtos.DtoMapper;
|
||||
import com.drinkool.dtos.UpdateMenuItem;
|
||||
import com.drinkool.entities.EateryEntity;
|
||||
import com.drinkool.entities.MenuItemEntity;
|
||||
import com.drinkool.lib.dtos.event.ManagerCreate;
|
||||
import io.vertx.core.http.HttpServerRequest;
|
||||
import jakarta.annotation.security.RolesAllowed;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
@@ -22,6 +25,9 @@ import org.eclipse.microprofile.reactive.messaging.Incoming;
|
||||
@GraphQLApi
|
||||
public class EateryService {
|
||||
|
||||
@Inject
|
||||
DtoMapper dtoMapper;
|
||||
|
||||
@Inject
|
||||
HttpServerRequest request;
|
||||
|
||||
@@ -46,20 +52,57 @@ public class EateryService {
|
||||
@Mutation("addMenuItem")
|
||||
@RolesAllowed(Role.Manager)
|
||||
@Transactional
|
||||
public MenuItemEntity addMenuItem(
|
||||
@Name("name") String name,
|
||||
@Name("price") double price
|
||||
) {
|
||||
public MenuItemEntity addMenuItem(@Name("menuItem") AddMenuItem menuItem) {
|
||||
String ownerId = request.getHeader(InternalValue.userId);
|
||||
|
||||
EateryEntity eatery = EateryEntity.findByOwnerId(ownerId);
|
||||
if (eatery == null) return null;
|
||||
|
||||
MenuItemEntity item = MenuItemEntity.create(eatery, name, price);
|
||||
MenuItemEntity item = MenuItemEntity.create(eatery, menuItem);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
@Mutation("updateMenuItem")
|
||||
@RolesAllowed(Role.Manager)
|
||||
@Transactional
|
||||
public MenuItemEntity updateMenuItem(UpdateMenuItem menuItem) {
|
||||
UUID ownerId = UUID.fromString(request.getHeader(InternalValue.userId));
|
||||
|
||||
MenuItemEntity item = MenuItemEntity.find(
|
||||
"id = ?1 and eatery.ownerId = ?2",
|
||||
menuItem.getId(),
|
||||
ownerId
|
||||
).firstResult();
|
||||
|
||||
if (item == null) return null;
|
||||
|
||||
dtoMapper.updateMenuItemToEntity(menuItem, item);
|
||||
|
||||
item.persist();
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
@Mutation("deleteMenuItem")
|
||||
@RolesAllowed(Role.Manager)
|
||||
@Transactional
|
||||
public boolean deleteMenuItem(@Name("menuItemId") UUID menuItemId) {
|
||||
UUID ownerId = UUID.fromString(request.getHeader(InternalValue.userId));
|
||||
|
||||
MenuItemEntity item = MenuItemEntity.find(
|
||||
"id = ?1 and eatery.ownerId = ?2",
|
||||
menuItemId,
|
||||
ownerId
|
||||
).firstResult();
|
||||
|
||||
if (item == null) return false;
|
||||
|
||||
item.delete();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Query("menuItemsByEatery")
|
||||
public List<MenuItemEntity> getMenuItemsByEatery(
|
||||
@Name("eateryId") UUID eateryId
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.drinkool.services;
|
||||
|
||||
import com.drinkool.dtos.SendReview;
|
||||
import com.drinkool.entities.ReviewEntity;
|
||||
import com.drinkool.lib.dtos.SendReview;
|
||||
|
||||
import jakarta.transaction.Transactional;
|
||||
import jakarta.ws.rs.*;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
|
||||
@@ -27,7 +27,8 @@ quarkus.native.remote-container-build=true
|
||||
quarkus.native.additional-build-args=--future-defaults=all
|
||||
|
||||
# Kafka
|
||||
mp.messaging.connector.smallrye-kafka.bootstrap.servers=${KAFKA_SERVICE_SERVICE_HOST:host.docker.internal}:9092
|
||||
%prod.mp.messaging.connector.smallrye-kafka.bootstrap.servers=${KAFKA_SERVICE_SERVICE_HOST:host.docker.internal}:9092
|
||||
mp.messaging.incoming.manager-in.connector=smallrye-in-memory
|
||||
|
||||
## Create restaurant topic
|
||||
mp.messaging.incoming.manager-in.connector=smallrye-kafka
|
||||
|
||||
@@ -9,9 +9,10 @@ import static org.hamcrest.Matchers.hasSize;
|
||||
|
||||
import com.drinkool.InternalValue;
|
||||
import com.drinkool.Role;
|
||||
import com.drinkool.dtos.event.ManagerCreate;
|
||||
import com.drinkool.dtos.AddMenuItem;
|
||||
import com.drinkool.entities.EateryEntity;
|
||||
import com.drinkool.entities.MenuItemEntity;
|
||||
import com.drinkool.lib.dtos.event.ManagerCreate;
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
import io.restassured.http.ContentType;
|
||||
import io.smallrye.reactive.messaging.memory.InMemoryConnector;
|
||||
@@ -19,6 +20,8 @@ import jakarta.enterprise.context.control.ActivateRequestContext;
|
||||
import jakarta.enterprise.inject.Any;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.transaction.Transactional;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import net.datafaker.Faker;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
@@ -57,9 +60,10 @@ public class EateryServiceTest {
|
||||
Assertions.assertEquals("Quan Bun Cha Test", eatery.name);
|
||||
}
|
||||
|
||||
private UUID lastSavedId;
|
||||
private String lastSavedName;
|
||||
private UUID lastOwnerId = UUID.randomUUID();
|
||||
private UUID savedEateryId;
|
||||
private String savedEateryName;
|
||||
private UUID savedOwnerId = UUID.randomUUID();
|
||||
private UUID savedMenuItemId;
|
||||
|
||||
@BeforeEach
|
||||
@Transactional
|
||||
@@ -67,11 +71,11 @@ public class EateryServiceTest {
|
||||
MenuItemEntity.deleteAll();
|
||||
EateryEntity.deleteAll();
|
||||
|
||||
lastSavedName = faker.restaurant().name();
|
||||
savedEateryName = faker.restaurant().name();
|
||||
|
||||
EateryEntity eatery = new EateryEntity();
|
||||
eatery = eatery.create(lastOwnerId, lastSavedName);
|
||||
lastSavedId = eatery.id;
|
||||
eatery = eatery.create(savedOwnerId, savedEateryName);
|
||||
savedEateryId = eatery.id;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
EateryEntity e = new EateryEntity();
|
||||
@@ -79,11 +83,13 @@ public class EateryServiceTest {
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
MenuItemEntity.create(
|
||||
savedMenuItemId = MenuItemEntity.create(
|
||||
eatery,
|
||||
faker.food().dish(),
|
||||
faker.number().randomDouble(2, 10, 100)
|
||||
);
|
||||
new AddMenuItem(
|
||||
faker.food().dish(),
|
||||
faker.number().randomDouble(2, 10, 100)
|
||||
)
|
||||
).id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +107,7 @@ public class EateryServiceTest {
|
||||
.statusCode(200)
|
||||
// GraphQL trả về dữ liệu bọc trong object "data"
|
||||
.body("data.allEateries", notNullValue())
|
||||
.body("data.allEateries.name", hasItems(lastSavedName));
|
||||
.body("data.allEateries.name", hasItems(savedEateryName));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -110,7 +116,7 @@ public class EateryServiceTest {
|
||||
// Lưu ý: Trong GraphQL, String/UUID phải nằm trong dấu ngoặc kép
|
||||
String query = String.format(
|
||||
"{ \"query\": \"{ eateryById(id: \\\"%s\\\") { ownerId name } }\" }",
|
||||
lastSavedId
|
||||
savedEateryId
|
||||
);
|
||||
|
||||
given()
|
||||
@@ -120,32 +126,35 @@ public class EateryServiceTest {
|
||||
.post("/graphql")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body("data.eateryById.name", is(lastSavedName));
|
||||
.body("data.eateryById.name", is(savedEateryName));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddMenuItemSuccess() {
|
||||
String mutation =
|
||||
"mutation addMenuItem($name: String!, $price: Float!) {" +
|
||||
" addMenuItem(name: $name, price: $price) {" +
|
||||
"mutation addMenuItem($menuItem: AddMenuItemInput!) {" +
|
||||
" addMenuItem(menuItem: $menuItem) {" +
|
||||
" id" +
|
||||
" name" +
|
||||
" price" +
|
||||
" }" +
|
||||
"}";
|
||||
|
||||
java.util.Map<String, Object> variables = new java.util.HashMap<>();
|
||||
variables.put("name", "Trà Sữa");
|
||||
variables.put("price", 30000.0);
|
||||
Map<String, Object> menuItemData = new HashMap<>();
|
||||
menuItemData.put("name", "Trà Sữa");
|
||||
menuItemData.put("price", 30000.0);
|
||||
|
||||
java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("menuItem", menuItemData);
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", mutation);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
given()
|
||||
.contentType(ContentType.JSON)
|
||||
.header(InternalValue.role, Role.Manager)
|
||||
.header(InternalValue.userId, lastOwnerId) // Thay "x-user-id" bằng InternalValue.userId của bạn
|
||||
.header(InternalValue.userId, savedOwnerId) // Thay "x-user-id" bằng InternalValue.userId của bạn
|
||||
.body(requestBody)
|
||||
.when()
|
||||
.post("/graphql")
|
||||
@@ -158,26 +167,29 @@ public class EateryServiceTest {
|
||||
@Test
|
||||
public void testAddMenuItemFailInvalidRole() {
|
||||
String mutation =
|
||||
"mutation addMenuItem($name: String!, $price: Float!) {" +
|
||||
" addMenuItem(name: $name, price: $price) {" +
|
||||
"mutation addMenuItem($menuItem: AddMenuItemInput!) {" +
|
||||
" addMenuItem(menuItem: $menuItem) {" +
|
||||
" id" +
|
||||
" name" +
|
||||
" price" +
|
||||
" }" +
|
||||
"}";
|
||||
|
||||
java.util.Map<String, Object> variables = new java.util.HashMap<>();
|
||||
variables.put("name", "Trà Sữa");
|
||||
variables.put("price", 30000.0);
|
||||
Map<String, Object> menuItemData = new HashMap<>();
|
||||
menuItemData.put("name", "Trà Sữa");
|
||||
menuItemData.put("price", 30000.0);
|
||||
|
||||
java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("menuItem", menuItemData);
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", mutation);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
given()
|
||||
.contentType(ContentType.JSON)
|
||||
.header(InternalValue.role, Role.Customer)
|
||||
.header(InternalValue.userId, lastOwnerId)
|
||||
.header(InternalValue.userId, savedOwnerId)
|
||||
.body(requestBody)
|
||||
.when()
|
||||
.post("/graphql")
|
||||
@@ -190,7 +202,7 @@ public class EateryServiceTest {
|
||||
String mutation =
|
||||
"mutation { addMenuItem(name: \"Coffee\", price: 20000.0) { id } }";
|
||||
|
||||
java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", mutation);
|
||||
|
||||
given()
|
||||
@@ -216,10 +228,10 @@ public class EateryServiceTest {
|
||||
" }" +
|
||||
"}";
|
||||
|
||||
java.util.Map<String, Object> variables = new java.util.HashMap<>();
|
||||
variables.put("id", lastSavedId.toString());
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("id", savedEateryId.toString());
|
||||
|
||||
java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", query);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
@@ -244,10 +256,10 @@ public class EateryServiceTest {
|
||||
" }" +
|
||||
"}";
|
||||
|
||||
java.util.Map<String, Object> variables = new java.util.HashMap<>();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("id", randomId);
|
||||
|
||||
java.util.Map<String, Object> requestBody = new java.util.HashMap<>();
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", query);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
@@ -260,4 +272,69 @@ public class EateryServiceTest {
|
||||
.statusCode(200)
|
||||
.body("data.menuItemsByEatery", hasSize(0)); // Phải trả về List rỗng như code bạn viết
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMenuItem_Success() {
|
||||
String mutation = """
|
||||
mutation updateMenuItem($menuItem: UpdateMenuItemInput!) {
|
||||
updateMenuItem(menuItem: $menuItem) {
|
||||
id
|
||||
name
|
||||
price
|
||||
}
|
||||
}
|
||||
""";
|
||||
|
||||
String newValue = "Phở Bò";
|
||||
|
||||
Map<String, Object> menuItemData = new HashMap<>();
|
||||
menuItemData.put("id", savedMenuItemId);
|
||||
menuItemData.put("name", newValue);
|
||||
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("menuItem", menuItemData);
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", mutation);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
given()
|
||||
.contentType(ContentType.JSON)
|
||||
.header(InternalValue.role, Role.Manager)
|
||||
.header(InternalValue.userId, savedOwnerId)
|
||||
.body(requestBody)
|
||||
.when()
|
||||
.post("/graphql")
|
||||
.then()
|
||||
.body("data.updateMenuItem.name", is(newValue))
|
||||
.body("data.updateMenuItem.id", is(savedMenuItemId.toString()))
|
||||
.statusCode(200);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMenuItem_Success() {
|
||||
String mutation = """
|
||||
mutation deleteItem($input: String!) {
|
||||
deleteMenuItem(menuItemId: $input)
|
||||
}
|
||||
""";
|
||||
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("input", savedMenuItemId.toString());
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("query", mutation);
|
||||
requestBody.put("variables", variables);
|
||||
|
||||
given()
|
||||
.contentType(ContentType.JSON)
|
||||
.header(InternalValue.role, Role.Manager)
|
||||
.header(InternalValue.userId, savedOwnerId)
|
||||
.body(requestBody)
|
||||
.when()
|
||||
.post("/graphql")
|
||||
.then()
|
||||
.statusCode(200)
|
||||
.body("data.deleteMenuItem", is(true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ package com.drinkool.services;
|
||||
import static io.restassured.RestAssured.given;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import com.drinkool.dtos.SendReview;
|
||||
import com.drinkool.entities.ReviewEntity;
|
||||
import com.drinkool.lib.dtos.SendReview;
|
||||
import com.drinkool.lib.models.ReviewModel;
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
import io.restassured.http.ContentType;
|
||||
|
||||
Reference in New Issue
Block a user