Files
backend/eatery-service/src/test/java/com/drinkool/entities/MenuItemEntityTest.java
T
TranHuuDanh 598d83ec9d
Java CI with Maven / build-and-test (pull_request) Failing after 6m39s
chore: update
2026-04-01 05:59:31 +00:00

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");
}
}