import org.junit.Test; import org.junit.Ignore; import java.util.Arrays; import java.util.List; import java.util.Collections; import static org.junit.Assert.assertEquals; public class AllergiesTest { @Test public void noAllergiesMeansNotAllergicToAnything() { Allergies allergies = new Allergies(0); assertEquals(false, allergies.isAllergicTo(Allergen.EGGS)); assertEquals(false, allergies.isAllergicTo(Allergen.PEANUTS)); assertEquals(false, allergies.isAllergicTo(Allergen.STRAWBERRIES)); assertEquals(false, allergies.isAllergicTo(Allergen.CATS)); } @Ignore("Remove to run test") @Test public void allergicToEggs() { Allergies allergies = new Allergies(1); assertEquals(true, allergies.isAllergicTo(Allergen.EGGS)); } @Ignore("Remove to run test") @Test public void allergicToPeanuts() { Allergies allergies = new Allergies(2); assertEquals(true, allergies.isAllergicTo(Allergen.PEANUTS)); } @Ignore("Remove to run test") @Test public void allergicToShellfish() { Allergies allergies = new Allergies(4); assertEquals(true, allergies.isAllergicTo(Allergen.SHELLFISH)); } @Ignore("Remove to run test") @Test public void allergicToStrawberries() { Allergies allergies = new Allergies(8); assertEquals(true, allergies.isAllergicTo(Allergen.STRAWBERRIES)); } @Ignore("Remove to run test") @Test public void allergicToTomatoes() { Allergies allergies = new Allergies(16); assertEquals(true, allergies.isAllergicTo(Allergen.TOMATOES)); } @Ignore("Remove to run test") @Test public void allergicToChocolate() { Allergies allergies = new Allergies(32); assertEquals(true, allergies.isAllergicTo(Allergen.CHOCOLATE)); } @Ignore("Remove to run test") @Test public void allergicToPollen() { Allergies allergies = new Allergies(64); assertEquals(true, allergies.isAllergicTo(Allergen.POLLEN)); } @Ignore("Remove to run test") @Test public void allergicToCats() { Allergies allergies = new Allergies(128); assertEquals(true, allergies.isAllergicTo(Allergen.CATS)); } @Ignore("Remove to run test") @Test public void isAllergicToEggsInAdditionToOtherStuff() { Allergies allergies = new Allergies(5); assertEquals(true, allergies.isAllergicTo(Allergen.EGGS)); assertEquals(true, allergies.isAllergicTo(Allergen.SHELLFISH)); assertEquals(false, allergies.isAllergicTo(Allergen.STRAWBERRIES)); } @Ignore("Remove to run test") @Test public void noAllergies() { Allergies allergies = new Allergies(0); assertEquals(0, allergies.getList().size()); } @Ignore("Remove to run test") @Test public void isAllergicToJustEggs() { Allergies allergies = new Allergies(1); List<Allergen> expectedAllergens = Collections.singletonList(Allergen.EGGS); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToJustPeanuts() { Allergies allergies = new Allergies(2); List<Allergen> expectedAllergens = Collections.singletonList(Allergen.PEANUTS); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToJustStrawberries() { Allergies allergies = new Allergies(8); List<Allergen> expectedAllergens = Collections.singletonList(Allergen.STRAWBERRIES); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToEggsAndPeanuts() { Allergies allergies = new Allergies(3); List<Allergen> expectedAllergens = Arrays.asList( Allergen.EGGS, Allergen.PEANUTS ); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToEggsAndShellfish() { Allergies allergies = new Allergies(5); List<Allergen> expectedAllergens = Arrays.asList( Allergen.EGGS, Allergen.SHELLFISH ); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToLotsOfStuff() { Allergies allergies = new Allergies(248); List<Allergen> expectedAllergens = Arrays.asList( Allergen.STRAWBERRIES, Allergen.TOMATOES, Allergen.CHOCOLATE, Allergen.POLLEN, Allergen.CATS ); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void isAllergicToEverything() { Allergies allergies = new Allergies(255); List<Allergen> expectedAllergens = Arrays.asList( Allergen.EGGS, Allergen.PEANUTS, Allergen.SHELLFISH, Allergen.STRAWBERRIES, Allergen.TOMATOES, Allergen.CHOCOLATE, Allergen.POLLEN, Allergen.CATS ); assertEquals(expectedAllergens, allergies.getList()); } @Ignore("Remove to run test") @Test public void ignoreNonAllergenScoreParts() { Allergies allergies = new Allergies(509); List<Allergen> expectedAllergens = Arrays.asList( Allergen.EGGS, Allergen.SHELLFISH, Allergen.STRAWBERRIES, Allergen.TOMATOES, Allergen.CHOCOLATE, Allergen.POLLEN, Allergen.CATS ); assertEquals(expectedAllergens, allergies.getList()); } }