58 lines
2.6 KiB
Java
58 lines
2.6 KiB
Java
package com.drinkool.entities;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
import io.quarkus.test.junit.QuarkusTest;
|
|
import jakarta.transaction.Transactional;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
@QuarkusTest
|
|
public class MenuItemEntityTest {
|
|
|
|
@Test
|
|
@Transactional
|
|
public void testCreateMenuItemSuccessfully() {
|
|
// 1. Chuẩn bị dữ liệu (Arrange)
|
|
String name = "Cà phê sữa đá";
|
|
double price = 29000.0;
|
|
|
|
// 2. Thực thi (Act) - Gọi hàm tĩnh create
|
|
MenuItemEntity menuItem = MenuItemEntity.create(name, price);
|
|
|
|
// 3. Kiểm chứng (Assert)
|
|
assertNotNull(menuItem, "Thực thể MenuItem không được null");
|
|
assertEquals(name, menuItem.name, "Tên món ăn không khớp");
|
|
assertEquals(price, menuItem.price, "Giá món ăn không khớp");
|
|
assertNotNull(menuItem.id, "ID phải được tự động sinh ra sau khi persist");
|
|
assertTrue(menuItem.ingredients.isEmpty(), "Danh sách nguyên liệu ban đầu phải rỗng");
|
|
}
|
|
|
|
@Test
|
|
@Transactional
|
|
public void testAddIngredientSuccessfully() {
|
|
// 1. Chuẩn bị dữ liệu (Arrange)
|
|
// Tạo món ăn
|
|
MenuItemEntity menuItem = MenuItemEntity.create("Trà sữa trân châu", 45000.0);
|
|
|
|
// Tạo nguyên liệu trong kho (Dùng đúng hàm add() của EateryInventoryItemEntity như đã fix)
|
|
EateryInventoryItemEntity inventoryItem = EateryInventoryItemEntity.create("Trân châu đen", 50, "kg");
|
|
|
|
double requiredQty = 0.2; // Cần 0.2 kg trân châu cho 1 ly
|
|
|
|
// 2. Thực thi (Act) - Thêm nguyên liệu vào món ăn
|
|
menuItem.addIngredient(inventoryItem, requiredQty);
|
|
|
|
// 3. Kiểm chứng (Assert)
|
|
// Kiểm tra danh sách nguyên liệu của món ăn
|
|
assertFalse(menuItem.ingredients.isEmpty(), "Danh sách nguyên liệu không được rỗng sau khi thêm");
|
|
assertEquals(1, menuItem.ingredients.size(), "Phải có đúng 1 nguyên liệu trong danh sách");
|
|
|
|
// Lấy phần tử nguyên liệu đầu tiên ra để kiểm tra chi tiết các liên kết
|
|
MenuItemIngredientEntity addedIngredient = menuItem.ingredients.get(0);
|
|
|
|
assertNotNull(addedIngredient.id, "ID của Entity trung gian phải được sinh ra");
|
|
assertEquals(menuItem.id, addedIngredient.menuItem.id, "Khóa ngoại MenuItem bị sai");
|
|
assertEquals(inventoryItem.id, addedIngredient.inventoryItem.id, "Khóa ngoại InventoryItem bị sai");
|
|
assertEquals(requiredQty, addedIngredient.requiredQuantity, "Định lượng (requiredQty) không khớp");
|
|
}
|
|
} |