diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MakeupRoutine.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MakeupRoutine.java new file mode 100644 index 000000000..0cb1dee8d --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MakeupRoutine.java @@ -0,0 +1,82 @@ +package com.codedifferently.lesson16.oliviajames; + +import java.util.ArrayList; +import java.util.List; + +public class MakeupRoutine { + + public enum MakeupLook { + DEWY, + NATURAL, + FULL_GLAM, + SOFT_GLAM, + } + + // Member Variables + private String name; + private int time; + private final boolean usesPrimer; + private final MakeupLook lookType; + List vanityItems; + + // Constructor + public MakeupRoutine(String name, int time, boolean usesPrimer, MakeupLook lookType) { + this.name = name; + this.time = time; + this.usesPrimer = true; + this.lookType = lookType; + } + + // Getters/setters + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getTime() { + return time; + } + + public void setTime(int time) { + this.time = time; + } + + public boolean getUsesPrimer() throws MissingPrimerException { + if (!usesPrimer) { + throw new MissingPrimerException("missing primer"); + } + System.out.println("has primer"); + return true; + } + + public MakeupLook getLookType() { + return lookType; + } + + public void MakeupVanity() { + vanityItems = new ArrayList<>(); + vanityItems.add("Foundation"); + vanityItems.add("Concealer"); + vanityItems.add("Setting Powder"); + vanityItems.add("Blush"); + vanityItems.add("Highlighter"); + vanityItems.add("Eyeshadow Palette"); + vanityItems.add("Mascara"); + vanityItems.add("Eyeliner"); + vanityItems.add("Lipstick"); + vanityItems.add("Lip Gloss"); + vanityItems.add("Setting Spray"); + vanityItems.add("Makeup Brushes"); + } + + public void showVanityItems() { + System.out.println("Items on the vanity:"); + for (String item : vanityItems) { + System.out.println("- " + item); + } + } +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MissingPrimerException.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MissingPrimerException.java new file mode 100644 index 000000000..fde692057 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MissingPrimerException.java @@ -0,0 +1,7 @@ +package com.codedifferently.lesson16.oliviajames; + +public class MissingPrimerException extends Exception { + public MissingPrimerException(String message) { + super(message); + } +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/oliviajames/MakeupRoutineTest.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/oliviajames/MakeupRoutineTest.java new file mode 100644 index 000000000..e811c1209 --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/oliviajames/MakeupRoutineTest.java @@ -0,0 +1,71 @@ +package com.codedifferently.lesson16.oliviajames; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.codedifferently.lesson16.oliviajames.MakeupRoutine.MakeupLook; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class MakeupRoutineTest { + + MakeupRoutine makeupRoutine; + + @BeforeEach + void setUp() { + makeupRoutine = new MakeupRoutine("NARS", 60, true, MakeupLook.FULL_GLAM); + } + + @Test + void testgetName() { + String actual = makeupRoutine.getName(); + + assertThat(actual).isEqualTo("NARS"); + } + + @Test + public void testSetName() { + makeupRoutine.setName("Night Out"); + assertEquals("Night Out", makeupRoutine.getName()); + } + + @Test + public void testGetTime() { + assertEquals(60, makeupRoutine.getTime()); + } + + @Test + public void testSetTime() { + makeupRoutine.setTime(45); + assertEquals(45, makeupRoutine.getTime()); + } + + @Test + public void testGetLookType() { + assertEquals(MakeupRoutine.MakeupLook.FULL_GLAM, makeupRoutine.getLookType()); + } + + @Test + public void testGetUsesPrimer() { + try { + makeupRoutine.getUsesPrimer(); + } catch (MissingPrimerException e) { + System.out.println(e.getMessage()); + } + } + + @Test + public void testShowVanityItems() { + assertNotNull(makeupRoutine); // just to check vanityItems were initialized + } + + @Test + public void testMakeupVanityHasItems() { + makeupRoutine.MakeupVanity(); + assertFalse(makeupRoutine.vanityItems.isEmpty()); + assertTrue(makeupRoutine.vanityItems.contains("Foundation")); + } +}