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

import mi.hdm.exceptions.InvalidNutritionTableException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

public class NutritionTableTest {

    public void shouldNotCreateInvalidNutritionTable() {
        Assertions.assertThrows(InvalidNutritionTableException.class, () -> new NutritionTable(-1.0, 1.0, 1.0, 1.0, 1.0, 1.2));
    }

    @Test
    public void shouldCreateValidNutritionTable() {
        //given
        double calories = 100.0;
        double carbs = 23.0;
        double fats = 1.0;
        double protein = 9.5;
        double fibers = 4.3;
        double salt = 0.7;

        //when
        NutritionTable underTest = new NutritionTable(calories, carbs, fats, protein, fibers, salt);

        //expect
        Map<Nutrition, BigDecimal> expected = new HashMap<>();
        expected.put(Nutrition.CALORIES, BigDecimal.valueOf(calories));
        expected.put(Nutrition.CARBS, BigDecimal.valueOf(carbs));
        expected.put(Nutrition.FAT, BigDecimal.valueOf(fats));
        expected.put(Nutrition.PROTEINS, BigDecimal.valueOf(protein));
        expected.put(Nutrition.FIBERS, BigDecimal.valueOf(fibers));
        expected.put(Nutrition.SALT, BigDecimal.valueOf(salt));
        Assertions.assertEquals(expected, underTest.getTable());
    @Test
    public void testEqualNutritionTable() {
        NutritionTable underTestOne = ValidObjectsPool.getValidNutritionTableOne();
        NutritionTable underTestTwo = ValidObjectsPool.getValidNutritionTableTwo();
        NutritionTable underTestEqualToOne = new NutritionTable(100.0, 17.2, 9.4, 4.3, 2.4, 0.4);

        Assertions.assertNotEquals(underTestOne, underTestTwo);
        Assertions.assertEquals(underTestEqualToOne, underTestEqualToOne);