Add Shop test
parent
c4335b5792
commit
95ad6006fe
|
|
@ -0,0 +1,97 @@
|
|||
import org.example.Constants;
|
||||
import org.example.Order;
|
||||
import org.example.Product;
|
||||
import org.example.Shop;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class ShopTest {
|
||||
|
||||
private Shop shop;
|
||||
private Product productA;
|
||||
private Product productB;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
productA = new Product(1, "Product 1", 0.5f, 50f, Constants.lowVat);
|
||||
productB = new Product(2, "Product 2", 1.0f, 500f, Constants.highVat);
|
||||
|
||||
HashMap<Product, Integer> stock = new HashMap<>();
|
||||
stock.put(productA, 2);
|
||||
stock.put(productB, 5);
|
||||
|
||||
shop = new Shop(stock);
|
||||
}
|
||||
|
||||
@Test
|
||||
void addProductToCart() {
|
||||
shop.addProductToCart(productA);
|
||||
shop.addProductToCart(productA);
|
||||
shop.addProductToCart(productA); // exceeds stock
|
||||
|
||||
assertEquals(2, shop.getCart().get(productA));
|
||||
}
|
||||
|
||||
@Test
|
||||
void removeProductFromCart() {
|
||||
shop.addProductToCart(productA);
|
||||
shop.addProductToCart(productA);
|
||||
|
||||
shop.removeProductFromCart(productA);
|
||||
|
||||
assertEquals(1, shop.getCart().get(productA));
|
||||
}
|
||||
|
||||
@Test
|
||||
void setProductQuantityInCart() {
|
||||
shop.setProductQuantityInCart(productA, 2);
|
||||
shop.setProductQuantityInCart(productA, 5);
|
||||
|
||||
assertEquals(2, shop.getCart().get(productA));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getStock() {
|
||||
assertEquals(2, shop.getStock(productA));
|
||||
assertEquals(5, shop.getStock(productB));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getProductById() {
|
||||
Product result = shop.getProductById(1);
|
||||
|
||||
assertNotNull(result);
|
||||
assertEquals(productA, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getProductByIdNotFound() {
|
||||
assertNull(shop.getProductById(999));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getProductList() {
|
||||
List<Product> products = shop.getProductList();
|
||||
|
||||
assertEquals(2, products.size());
|
||||
assertTrue(products.contains(productA));
|
||||
assertTrue(products.contains(productB));
|
||||
}
|
||||
|
||||
@Test
|
||||
void checkout() {
|
||||
shop.addProductToCart(productA);
|
||||
shop.addProductToCart(productB);
|
||||
shop.addProductToCart(productB);
|
||||
|
||||
Order order = shop.checkout();
|
||||
|
||||
assertNotNull(order);
|
||||
assertTrue(shop.getCart().isEmpty());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue