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