/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package cz.cvut.fel.restauracefel.server.service.controllers;
import cz.cvut.fel.restauracefel.server.service.controllers.DiscountTypeController;
import cz.cvut.fel.restauracefel.server.service.controllers.MenuItemTypeController;
import cz.cvut.fel.restauracefel.server.service.controllers.MenuItemController;
import cz.cvut.fel.restauracefel.server.service.controllers.DiscountController;
import java.util.Iterator;
import java.util.List;
import cz.cvut.fel.restauracefel.hibernate.Discount;
import cz.cvut.fel.restauracefel.hibernate.MenuItemType;
import org.junit.Test;
import cz.cvut.fel.restauracefel.hibernate.MenuItem;
import cz.cvut.fel.restauracefel.hibernate.DiscountType;
import org.junit.After;
import org.junit.Before;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import static org.junit.Assert.*;
/**
*
* @author honza
*/
public class DiscountControllerTest {
private static DiscountController dcInst;
private static DiscountType discountType;
private static MenuItemType menuItemType;
private static MenuItem menuItem;
public DiscountControllerTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
dcInst = DiscountController.getInstance();
DiscountTypeController dtc = DiscountTypeController.getInstance();
dtc.createDiscountType("testName");
discountType = dtc.getDiscountTypeByName("testName");
MenuItemTypeController mitc = MenuItemTypeController.getInstance();
mitc.createMenuItemType("testName");
menuItemType = mitc.getMenuItemTypeByName("testName");
MenuItemController mic = MenuItemController.getInstance();
mic.createMenuItem("testName", 100.0, "1", 1, menuItemType.getMenuItemTypeId());
menuItem = mic.getMenuItemByName("testName");
}
@AfterClass
public static void tearDownClass() throws Exception {
Discount discount = dcInst.getDiscountByDiscountTypeAndMenuItem(discountType.getDiscountTypeId(), menuItem.getMenuItemId());
if(discount != null) discount.delete();
if(discountType != null) discountType.delete();
if(menuItem != null) menuItem.delete();
if(menuItemType != null) menuItemType.delete();
}
@Before
public void tearUp() {
}
@After
public void tearDown() {
}
@Test
public void TestCreateDiscount() {
boolean result;
result = dcInst.createDiscount(discountType.getDiscountTypeId(), menuItem.getMenuItemId(), 2.0, 1.0);
assertEquals(true, result);
result = dcInst.createDiscount(0, menuItem.getMenuItemId(), 2.0, 1.0);
assertEquals(false, result);
result = dcInst.createDiscount(discountType.getDiscountTypeId(), 0, 2.0, 1.0);
assertEquals(false, result);
}
@Test
public void TestDeleteDiscount() {
boolean result;
Discount discount = dcInst.getDiscountByDiscountTypeAndMenuItem(discountType.getDiscountTypeId(), menuItem.getMenuItemId());
result = dcInst.deleteDiscount(discount.getDiscountId());
assertEquals(true, result);
assertEquals(1, discount.getIsDeleted());
discount.setIsDeleted(0);
}
@Test
public void TestGetAllDiscounts() {
boolean found = false;
Discount temp;
List<Discount> result = dcInst.getAllDiscounts();
if(result == null || result.isEmpty()) fail();
Iterator iter = result.iterator();
while(iter.hasNext()){
temp = (Discount) iter.next();
if(temp.getDiscountType() == discountType && temp.getMenuItem() == menuItem) found = true;
}
assertEquals(true, found);
}
@Test
public void TestGetDiscounts() {
boolean found = false;
Object[][] result = dcInst.getDiscounts();
if(result == null || result.length < 1) fail();
for(int i = 0; i < result.length; i ++){
if(result[i][1] == discountType && result[i][2] == menuItem) found = true;
}
assertEquals(true, found);
}
}