From 5aa26e967978c0e8ac820d279c31c54957a17b40 Mon Sep 17 00:00:00 2001 From: OliviaxJames Date: Wed, 23 Apr 2025 16:27:02 +0000 Subject: [PATCH 1/2] feat:add oliviajames lesson 16 hw (incopmplete) --- .../src/main/oliviajames/MakeupRoutine.java | 78 +++++++++++++++++++ .../oliviajames/StepMissingException.java | 9 +++ .../oliviajames/MakeupRoutineTest.java | 65 ++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java create mode 100644 lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java create mode 100644 lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/oliviajames/MakeupRoutineTest.java diff --git a/lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java b/lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java new file mode 100644 index 000000000..60d07ed82 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java @@ -0,0 +1,78 @@ +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 durationMinutes; + private boolean usesPrimer; + private ArrayList steps; + private MakeupLook lookType; + + // Constructor + public MakeupRoutine(String name, int durationMinutes, boolean usesPrimer, MakeupLook lookType) { + this.name = name; + this.durationMinutes = durationMinutes; + this.usesPrimer = usesPrimer; + this.lookType = lookType; + } + + // Function using condition + public String checkPrimerStep() { + return usesPrimer ? "Primer included in routine." : "No primer used in this routine."; + } + + // Function using collection + public void addStep(String step) { + steps.add(step); + } + + // Function using loop + public void printRoutineSteps() { + for (String step : steps) { + System.out.println(step); + } + } + + // Function using custom exception + public void validateSteps() throws StepMissingException { + if (steps == null || steps.isEmpty()) { + throw new StepMissingException("No steps in this makeup routine!"); + } + } + + // Getters for testing + + + + public String getName() { + return name; + } + public int getDurationMinutes() { + return durationMinutes; + } + + public boolean isUsesPrimer() { + return usesPrimer; + } + public ArrayList getSteps() { + return steps; + } + public MakeupLook getLookType() { + return lookType; + } + + + + + //make class +} diff --git a/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java b/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java new file mode 100644 index 000000000..dc20dbce3 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java @@ -0,0 +1,9 @@ +package com.codedifferently.lesson16.oliviajames; + +public class StepMissingException extends Exception{ + public StepMissingException(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..2b2c85df4 --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/oliviajames/MakeupRoutineTest.java @@ -0,0 +1,65 @@ +package com.codedifferently.lesson16; + + +import org.junit.jupiter.api.Test; + +public class MakeupRoutineTest{ + +MakeupRoutine makeupRoutine; + +@BeforeEach +void setUp() { +makeupRoutine = new MakeupRoutine("NARS", 60, true, "DEWY") +} + + @Test + void testgetName() { +String actual = makeupRoutine.getName(); + +assertThat(actual).isEqualTo("NARS"); +} + + + + + + /*public void testGetLook() { + MakeupRoutine routine = + new MakeupRoutine("Soft Glam", "Foundation", 5, GlamRank.SOFT_GLAM, 120.00); + GlamRank expected = GlamRank.SOFT_GLAM; + assertThat(routine.getRank()).isEqualTo(expected); + } + + @Test + public void testSetBaseProduct() { + MakeupRoutine routine = + new MakeupRoutine("Natural", "BB Cream", 3, GlamRank.NATURAL_BADDIE, 85.50); + routine.setBaseProduct("Tinted Moisturizer"); + String expected = "Tinted Moisturizer"; + assertThat(routine.getBaseProduct()).isEqualTo(expected); + } + + @Test + public void testSetTotalCost() { + MakeupRoutine routine = + new MakeupRoutine("Full Glam", "Full Coverage Foundation", 8, GlamRank.FULL_GLAM, 200.00); + routine.setTotalCost(220.00); + double expected = 220.00; + assertThat(routine.getTotalCost()).isEqualTo(expected); + } + + @Test + public void testAddStep() { + MakeupRoutine routine = + new MakeupRoutine("Glow", "Light Coverage", 6, GlamRank.FULL_GLAM, 88.00); + String step = "add mascara"; + routine.addStep(step); + steps = routine.getSteps(); + if (steps.contains(step)) { + System.out.println("Step add mascara is in the list"); + + } else { + System.out.println("Step add mascara is not in the list"); + } + }*/ +} From 8c9515dee981f5d064e63100902002942cbc637a Mon Sep 17 00:00:00 2001 From: OliviaxJames Date: Wed, 23 Apr 2025 22:09:39 +0000 Subject: [PATCH 2/2] feat: add lesson16 custom class MakeupRoutine.java & test cases with exception handling --- .../lesson16/oliviajames/MakeupRoutine.java | 82 +++++++++++++++++ .../oliviajames/MissingPrimerException.java | 7 ++ .../src/main/oliviajames/MakeupRoutine.java | 78 ---------------- .../oliviajames/StepMissingException.java | 9 -- .../oliviajames/MakeupRoutineTest.java | 88 ++++++++++--------- 5 files changed, 136 insertions(+), 128 deletions(-) create mode 100644 lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MakeupRoutine.java create mode 100644 lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/oliviajames/MissingPrimerException.java delete mode 100644 lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java delete mode 100644 lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java 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/main/oliviajames/MakeupRoutine.java b/lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java deleted file mode 100644 index 60d07ed82..000000000 --- a/lesson_16/objects/objects_app/src/main/oliviajames/MakeupRoutine.java +++ /dev/null @@ -1,78 +0,0 @@ -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 durationMinutes; - private boolean usesPrimer; - private ArrayList steps; - private MakeupLook lookType; - - // Constructor - public MakeupRoutine(String name, int durationMinutes, boolean usesPrimer, MakeupLook lookType) { - this.name = name; - this.durationMinutes = durationMinutes; - this.usesPrimer = usesPrimer; - this.lookType = lookType; - } - - // Function using condition - public String checkPrimerStep() { - return usesPrimer ? "Primer included in routine." : "No primer used in this routine."; - } - - // Function using collection - public void addStep(String step) { - steps.add(step); - } - - // Function using loop - public void printRoutineSteps() { - for (String step : steps) { - System.out.println(step); - } - } - - // Function using custom exception - public void validateSteps() throws StepMissingException { - if (steps == null || steps.isEmpty()) { - throw new StepMissingException("No steps in this makeup routine!"); - } - } - - // Getters for testing - - - - public String getName() { - return name; - } - public int getDurationMinutes() { - return durationMinutes; - } - - public boolean isUsesPrimer() { - return usesPrimer; - } - public ArrayList getSteps() { - return steps; - } - public MakeupLook getLookType() { - return lookType; - } - - - - - //make class -} diff --git a/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java b/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java deleted file mode 100644 index dc20dbce3..000000000 --- a/lesson_16/objects/objects_app/src/main/oliviajames/StepMissingException.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.codedifferently.lesson16.oliviajames; - -public class StepMissingException extends Exception{ - public StepMissingException(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 index 2b2c85df4..e811c1209 100644 --- 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 @@ -1,65 +1,71 @@ -package com.codedifferently.lesson16; +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{ +public class MakeupRoutineTest { -MakeupRoutine makeupRoutine; + MakeupRoutine makeupRoutine; -@BeforeEach -void setUp() { -makeupRoutine = new MakeupRoutine("NARS", 60, true, "DEWY") -} + @BeforeEach + void setUp() { + makeupRoutine = new MakeupRoutine("NARS", 60, true, MakeupLook.FULL_GLAM); + } @Test void testgetName() { -String actual = makeupRoutine.getName(); - -assertThat(actual).isEqualTo("NARS"); -} - + 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()); + } - /*public void testGetLook() { - MakeupRoutine routine = - new MakeupRoutine("Soft Glam", "Foundation", 5, GlamRank.SOFT_GLAM, 120.00); - GlamRank expected = GlamRank.SOFT_GLAM; - assertThat(routine.getRank()).isEqualTo(expected); + @Test + public void testSetTime() { + makeupRoutine.setTime(45); + assertEquals(45, makeupRoutine.getTime()); } @Test - public void testSetBaseProduct() { - MakeupRoutine routine = - new MakeupRoutine("Natural", "BB Cream", 3, GlamRank.NATURAL_BADDIE, 85.50); - routine.setBaseProduct("Tinted Moisturizer"); - String expected = "Tinted Moisturizer"; - assertThat(routine.getBaseProduct()).isEqualTo(expected); + public void testGetLookType() { + assertEquals(MakeupRoutine.MakeupLook.FULL_GLAM, makeupRoutine.getLookType()); } @Test - public void testSetTotalCost() { - MakeupRoutine routine = - new MakeupRoutine("Full Glam", "Full Coverage Foundation", 8, GlamRank.FULL_GLAM, 200.00); - routine.setTotalCost(220.00); - double expected = 220.00; - assertThat(routine.getTotalCost()).isEqualTo(expected); + public void testGetUsesPrimer() { + try { + makeupRoutine.getUsesPrimer(); + } catch (MissingPrimerException e) { + System.out.println(e.getMessage()); + } } @Test - public void testAddStep() { - MakeupRoutine routine = - new MakeupRoutine("Glow", "Light Coverage", 6, GlamRank.FULL_GLAM, 88.00); - String step = "add mascara"; - routine.addStep(step); - steps = routine.getSteps(); - if (steps.contains(step)) { - System.out.println("Step add mascara is in the list"); + public void testShowVanityItems() { + assertNotNull(makeupRoutine); // just to check vanityItems were initialized + } - } else { - System.out.println("Step add mascara is not in the list"); - } - }*/ + @Test + public void testMakeupVanityHasItems() { + makeupRoutine.MakeupVanity(); + assertFalse(makeupRoutine.vanityItems.isEmpty()); + assertTrue(makeupRoutine.vanityItems.contains("Foundation")); + } }