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 { @Test 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); } }