Prog2UE/de.hhn.ai.prog2.blatt7.junit/tests/model/OrderTest.java
2019-06-27 18:28:34 +02:00

85 lines
2.5 KiB
Java

package model;
import model.exceptions.OrderException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
class OrderTest {
private List<Pizza> pizzas;
private Order order;
@BeforeEach
void setUp() {
pizzas = new ArrayList<>(Arrays.asList(new Pizza(), new Pizza()));
order = new Order("Max Mustermann", pizzas, new Date());
}
@Test
void getCustomer() {
assertEquals("Max Mustermann", order.getCustomer());
assertNotEquals("Wrong", order.getCustomer());
}
@Test
void setCustomer() {
order.setCustomer("Max Mustermann 2");
assertEquals("Max Mustermann 2", order.getCustomer());
assertNotEquals("Max Mustermann", order.getCustomer());
}
@Test
void getPizzas() {
assertEquals(pizzas, order.getPizzas());
assertNotEquals(Arrays.asList(new Pizza(), new Pizza()), order.getPizzas());
}
@Test
void setPizzas() throws OrderException {
List<Pizza> newPizzas = new ArrayList<>(Arrays.asList(new Pizza(), new Pizza()));
order.setPizzas(newPizzas);
assertEquals(newPizzas, order.getPizzas());
assertNotEquals(pizzas, order.getPizzas());
}
/**
* Tests if the exception is thrown when order is not in {@link model.Order.OrderState#IN_PROGRESS}
*/
@Test
void addPizzaAfterCompletion() {
order.setOrderState(Order.OrderState.DELIVERD);
assertThrows(OrderException.class, () -> order.setPizzas(pizzas));
}
/**
* Tests if the pizza is added to the pizza List.
*/
@Test
void addPizzaBeforeCompletion() throws OrderException {
order.addPizza(new Pizza());
}
@Test
void setOrderState() {
order.setOrderState(Order.OrderState.DELIVERD);
assertEquals(Order.OrderState.DELIVERD, order.getOrderState());
assertNotEquals(Order.OrderState.WAIT, order.getOrderState());
}
@Test
void setDate() {
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(today);
c.add(Calendar.DAY_OF_MONTH, 21);
Date currentDatePlus21d = c.getTime();
assertThrows(IllegalArgumentException.class, () -> order.setDate(currentDatePlus21d));
c.add(Calendar.DAY_OF_MONTH, -2);
Date currentDatePlus19d = c.getTime();
assertDoesNotThrow(() -> order.setDate(currentDatePlus19d));
}
}