Skip to content
Snippets Groups Projects
IngredientTest.java 1.86 KiB
Newer Older
package mi.hdm.recipes;

Karsch Lukas's avatar
Karsch Lukas committed
import mi.hdm.exceptions.InvalidIngredientException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;


public class IngredientTest {
    IngredientManager underTest = new IngredientManager();
    NutritionTable tt = ValidObjectsPool.getValidNutritionTableOne();
    @BeforeEach
    public void setup() {
        underTest.clearIngredients();
    }

    @Test
Karsch Lukas's avatar
Karsch Lukas committed
    public void shouldNotCreateIngredientWithNameNull() {
        Assertions.assertThrows(InvalidIngredientException.class, () -> new Ingredient(Measurement.GRAM, null, tt));
Karsch Lukas's avatar
Karsch Lukas committed
    }

Karsch Lukas's avatar
Karsch Lukas committed
    public void shouldNotCreateIngredientWithNameEmpty() {
        Assertions.assertThrows(InvalidIngredientException.class, () -> new Ingredient(Measurement.GRAM, "", tt));
Karsch Lukas's avatar
Karsch Lukas committed
    }

Karsch Lukas's avatar
Karsch Lukas committed
    public void shouldNotCreateIngredientWithNutritionTableNull() {
        Assertions.assertThrows(InvalidIngredientException.class, () -> new Ingredient(Measurement.GRAM, "foo", null));
Karsch Lukas's avatar
Karsch Lukas committed
    }

    @Test
    public void shouldNotBeAbleToAddIdenticalName() {
        underTest.addIngredient(Measurement.GRAM, "Banana", tt);
        Assertions.assertThrows(InvalidIngredientException.class, () -> underTest.addIngredient(Measurement.PIECE, "Banana", tt));
Karsch Lukas's avatar
Karsch Lukas committed

    @Test
    public void shouldRemoveExistingIngredient() {
        //given
        Ingredient i1 = ValidObjectsPool.getValidIngredientOne();
        underTest.addIngredient(i1);

        //when
        underTest.deleteIngredient(i1.getName());
Karsch Lukas's avatar
Karsch Lukas committed

        //expect
        Assertions.assertEquals(0, underTest.getAllIngredients().size());
Karsch Lukas's avatar
Karsch Lukas committed
    }

Karsch Lukas's avatar
Karsch Lukas committed
    public void shouldThrowWhenRemovingWrongIngredient() {
        Ingredient i1 = ValidObjectsPool.getValidIngredientOne();
        Assertions.assertThrows(InvalidIngredientException.class, () -> underTest.deleteIngredient(i1.getName()));
Karsch Lukas's avatar
Karsch Lukas committed
    }