diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Party.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Party.java new file mode 100644 index 000000000..e15442ee2 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Party.java @@ -0,0 +1,101 @@ +package com.codedifferently.lesson16.ezranyabuti; + +import java.util.ArrayList; + +public class Party { + + private String name; + private String location; + private String localDate; + private Boolean isPrivate; + private double coverCharge; + private int ticketNumber; + private Vibe vibe; + private ArrayList guestList; + + public Party( + String name, + String location, + String localDate, + Boolean isPrivate, + Double coverCharge, + int ticketNumber, + Vibe vibe, + String[] guestList) { + this.name = name; + this.location = location; + this.isPrivate = isPrivate; + this.coverCharge = coverCharge; + this.ticketNumber = ticketNumber; + this.vibe = vibe; + this.guestList = new ArrayList<>(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getLocalDate() { + return localDate; + } + + public void setLocalDate(String localDate) { + this.localDate = localDate; + } + + public Boolean getIsPrivate() { + return isPrivate; + } + + public void setIsPrivate(Boolean isPrivate) { + this.isPrivate = isPrivate; + } + + public double getCoverCharge() { + return coverCharge; + } + + public void setCoverCharge(double coverCharge) { + this.coverCharge = coverCharge; + } + + public int getTicketNumber() { + return ticketNumber; + } + + public void setTicketNumber(int ticketNumber) { + this.ticketNumber = ticketNumber; + } + + public Vibe getVibe() { + return vibe; + } + + public void setVibe(Vibe vibe) { + this.vibe = vibe; + } + + public ArrayList getGuestList() { + ArrayList copy = new ArrayList<>(); + for (String guest : guestList) { + copy.add(guest); + } + return copy; + } + + public void setGuestList(ArrayList guestList) { + this.guestList = guestList; + } +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/PartyCityException.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/PartyCityException.java new file mode 100644 index 000000000..d8e6b7519 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/PartyCityException.java @@ -0,0 +1,7 @@ +package com.codedifferently.lesson16.ezranyabuti; + +public class PartyCityException extends Exception { + public PartyCityException(String message) { + super(message); + } +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Vibe.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Vibe.java new file mode 100644 index 000000000..868d14e73 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ezranyabuti/Vibe.java @@ -0,0 +1,9 @@ +package com.codedifferently.lesson16.ezranyabuti; + +public enum Vibe { + CHILL, + PRIVATE, + ALL_WHITE, + RELAXED_LOUNGE, + COSTUME +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyExceptionTest.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyExceptionTest.java new file mode 100644 index 000000000..cf589d81e --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyExceptionTest.java @@ -0,0 +1,15 @@ +package com.codedifferently.lesson16.ezranyabuti; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +public class PartyExceptionTest { + @Test + void testConstructor() { + String expectedMessage = "Party is not private"; + PartyCityException exception = new PartyCityException(expectedMessage); + String actualMessage = exception.getMessage(); + assertThat(actualMessage).isEqualTo(expectedMessage); + } +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyTest.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyTest.java new file mode 100644 index 000000000..87eb5c10d --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/PartyTest.java @@ -0,0 +1,261 @@ +package com.codedifferently.lesson16.ezranyabuti; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +public class PartyTest { + + @Test + void testGetName() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String expectedName = "Everyday People"; + party.setName(expectedName); + String actualName = party.getName(); + assertThat(actualName).isEqualTo(expectedName); + } + + @Test + void testGetlocalDate() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String expectedDate = "2025-06-012"; + party.setLocalDate(expectedDate); + String actualDate = party.getLocalDate(); + assertThat(actualDate).isEqualTo(expectedDate); + } + + @Test + void testGetCoverCharge() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + Double expectedCharge = 50.0; + party.setCoverCharge(expectedCharge); + Double actualCharge = party.getCoverCharge(); + assertThat(actualCharge).isEqualTo(expectedCharge); + } + + @Test + void testGetVibe() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + Vibe expectedVibe = Vibe.CHILL; + party.setVibe(expectedVibe); + Vibe actualVibe = party.getVibe(); + assertThat(actualVibe).isEqualTo(expectedVibe); + } + + @Test + void testSetVibe() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + } + + @Test + void testSetName() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String expectedName = "Everyday People"; + party.setName(expectedName); + String actualName = party.getName(); + assertThat(actualName).isEqualTo(expectedName); + } + + @Test + void testSetLocation() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String expectedLocation = "Brooklyn"; + party.setLocation(expectedLocation); + String actualLocation = party.getLocation(); + assertThat(actualLocation).isEqualTo(expectedLocation); + } + + @Test + void testGetLocation() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String expectedLocation = "Brooklyn"; + party.setLocation(expectedLocation); + String actualLocation = party.getLocation(); + assertThat(actualLocation).isEqualTo(expectedLocation); + } + + @Test + void testGetPrivate() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + Boolean expectedPrivate = false; + party.setIsPrivate(expectedPrivate); + Boolean actualPrivate = party.getIsPrivate(); + assertThat(actualPrivate).isEqualTo(expectedPrivate); + } + + @Test + void testSetPrivate() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + Boolean expectedPrivate = true; + party.setIsPrivate(expectedPrivate); + Boolean actualPrivate = party.getIsPrivate(); + assertThat(actualPrivate).isEqualTo(expectedPrivate); + } + + @Test + void testCoverCharge() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + Double expectedCharge = 50.0; + party.setCoverCharge(expectedCharge); + Double actualCharge = party.getCoverCharge(); + assertThat(actualCharge).isEqualTo(expectedCharge); + } + + @Test + void testGetTicketNum() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + int expectedNum = 10; + party.setTicketNumber(expectedNum); + int actualTicketNumber = party.getTicketNumber(); + assertThat(actualTicketNumber).isEqualTo(expectedNum); + } + + @Test + void testSetTicketNum() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + int expectedNum = 10; + party.setTicketNumber(expectedNum); + int actualTicketNumber = party.getTicketNumber(); + assertThat(actualTicketNumber).isEqualTo(expectedNum); + } + + @Test + void testGuestList() { + Party party = + new Party( + "Everyday People", + "Washington D.C.", + "2025-06-012", + false, + 50.0, + 0, + Vibe.CHILL, + new String[] {}); + String[] expectedGuestList = {"Meiko", "Ezra", "Bryana", "Justin"}; + + ArrayList guestList = new ArrayList<>(Arrays.asList(expectedGuestList)); + party.setGuestList(guestList); + + ArrayList actualGuestList = party.getGuestList(); + assertThat(actualGuestList).isEqualTo(new ArrayList<>(Arrays.asList(expectedGuestList))); + } +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/VibeTest.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/VibeTest.java new file mode 100644 index 000000000..a2a0696d2 --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ezranyabuti/VibeTest.java @@ -0,0 +1,27 @@ +package com.codedifferently.lesson16.ezranyabuti; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +public class VibeTest { + + @Test + void testVibeEnum() { + Vibe[] expectedVibes = { + Vibe.CHILL, Vibe.PRIVATE, Vibe.ALL_WHITE, Vibe.RELAXED_LOUNGE, Vibe.COSTUME + }; + Vibe[] actualVibes = Vibe.values(); + assertThat(actualVibes).containsExactly(expectedVibes); + } + + @Test + void testVibeEnumNames() { + String[] expectedNames = {"CHILL", "PRIVATE", "ALL_WHITE", "RELAXED_LOUNGE", "COSTUME"}; + String[] actualNames = new String[expectedNames.length]; + for (int i = 0; i < expectedNames.length; i++) { + actualNames[i] = Vibe.values()[i].name(); + } + assertThat(actualNames).containsExactly(expectedNames); + } +}