diff --git a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java index 49aaabbd7..e918774b4 100644 --- a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java +++ b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java @@ -45,4 +45,8 @@ public double getSalary() { public void setSalary(double salary) { this.salary = salary; } + + public String getDetails() { + return "ID: " + id + ", Name: " + name + ", Department: " + department + ", Salary: " + salary; + } } diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java index cd6ef511e..0fdc046a8 100644 --- a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Lesson15Test.java @@ -1,6 +1,7 @@ package com.codedifferently.lesson15; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; @@ -16,4 +17,74 @@ public void testGetGreeting() { // Act Lesson15.main(null); } + + @Test + public void testEmployeeId_Exists() { + Employee employee = new Employee(0, null, null, 0); + assertEquals(0, employee.getId()); + } + + @Test + public void testEmployeeName_Exists() { + Employee employee = new Employee(0, "dave", null, 0); + assertEquals("dave", employee.getName()); + } + + @Test + public void testEmployeeDepartment_Exists() { + Employee employee = new Employee(0, "dave", "IT", 0); + assertEquals("IT", employee.getDepartment()); + } + + @Test + public void testEmployeeSalary_Exists() { + Employee employee = new Employee(0, "dave", "IT", 10000); + assertEquals(10000, employee.getSalary()); + } + + @Test + public void testGetEmployee() { + Employee employee = new Employee(10, null, null, 0); + EmployeeManager manager = new EmployeeManager(); + manager.addEmployee(employee); + assertEquals(employee, manager.getEmployee(10)); + } + + @Test + public void testGetEmployeeCount() { + Employee employee = new Employee(10, null, null, 0); + EmployeeManager manager = new EmployeeManager(); + manager.addEmployee(employee); + assertEquals(1, manager.getEmployeeCount()); + } + + @Test + public void testGetEmployeeUpate() { + Employee employee2 = new Employee(10, "BillyBobJenkins", null, 0); + Employee employee = new Employee(10, "Dave", null, 0); + EmployeeManager manager = new EmployeeManager(); + manager.addEmployee(employee); + manager.updateEmployee(employee2); + + assertEquals(employee2, manager.getEmployee(10)); + } + + @Test + public void testGetEmployeeRemove() { + Employee employee2 = new Employee(10, "BillyBobJenkins", null, 0); + Employee employee = new Employee(11, "Dave", null, 0); + EmployeeManager manager = new EmployeeManager(); + manager.addEmployee(employee); + manager.addEmployee(employee2); + manager.removeEmployee(10); + + assertEquals(1, manager.getEmployeeCount()); + } + + @Test + public void testGetDetails() { + Employee employee2 = new Employee(10, "BillyBobJenkins", "IT", 10); + assertEquals( + "ID: 10, Name: BillyBobJenkins, Department: IT, Salary: 10.0", employee2.getDetails()); + } } diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/BuyType.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/BuyType.java new file mode 100644 index 000000000..aab8be64a --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/BuyType.java @@ -0,0 +1,7 @@ +package com.codedifferently.lesson16.ShawnDunsmore; + +public enum BuyType { + BONUS_BUY, + DOUBLE_CHANCE, + NORMAL_BUY, +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/InvalidPayAmountException.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/InvalidPayAmountException.java new file mode 100644 index 000000000..dd4ce371e --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/InvalidPayAmountException.java @@ -0,0 +1,8 @@ +package com.codedifferently.lesson16.ShawnDunsmore; + +public class InvalidPayAmountException extends Exception { + + public InvalidPayAmountException(String message) { + super(message); + } +} diff --git a/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachine.java b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachine.java new file mode 100644 index 000000000..0c32582e5 --- /dev/null +++ b/lesson_16/objects/objects_app/src/main/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachine.java @@ -0,0 +1,82 @@ +package com.codedifferently.lesson16.ShawnDunsmore; + +import java.util.ArrayList; +import java.util.Collections; + +public class SlotMachine { + private int numOfSlots; + private int payAmount; + private String name; + private BuyType buyType; + private ArrayList iconList; + private int moneyNeeded; + + public SlotMachine( + int numOfSlots, + int payAmount, + String name, + BuyType buyType, + ArrayList iconList, + int moneyNeeded) { + this.numOfSlots = numOfSlots; + this.payAmount = payAmount; + this.name = name; + this.buyType = buyType; + this.iconList = iconList; + this.moneyNeeded = moneyNeeded; + } + + public int getNumOfSlots() { + return numOfSlots; + } + + public int getPayAmount() { + return payAmount; + } + public String getName() { + return name; + } + + public BuyType getBuyType() { + return buyType; + } + + public ArrayList getIconList() { + return iconList; + } + + + public int payOut() { + if (buyType.equals(BuyType.DOUBLE_CHANCE)) { + return payAmount * 2; + } + + if (buyType.equals(BuyType.BONUS_BUY)) { + return payAmount * 3; + } + return payAmount; + } + + public ArrayList spin(int money) throws InvalidPayAmountException { + if (money < moneyNeeded) { + throw new InvalidPayAmountException("Amount inavalid"); + } + Collections.shuffle(iconList); + return iconList; + } + + public ArrayList spin(int money, int numOfSpins) throws InvalidPayAmountException { + if (money < moneyNeeded) { + throw new InvalidPayAmountException("Amount inavalid"); + } + for (int i = 0; i < numOfSpins; i++) { + Collections.shuffle(iconList); + } + + return iconList; + } + + public int getMoneyNeeded() { + return moneyNeeded; + } +} diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/Lesson16Test.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/Lesson16Test.java index 2032de832..ed6e7568c 100644 --- a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/Lesson16Test.java +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/Lesson16Test.java @@ -1,7 +1,6 @@ package com.codedifferently.lesson16; import static org.assertj.core.api.Assertions.assertThat; - import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachineTest.java b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachineTest.java new file mode 100644 index 000000000..d63761125 --- /dev/null +++ b/lesson_16/objects/objects_app/src/test/java/com/codedifferently/lesson16/ShawnDunsmore/SlotMachineTest.java @@ -0,0 +1,64 @@ +package com.codedifferently.lesson16.ShawnDunsmore; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; +import org.junit.jupiter.api.Test; + +public class SlotMachineTest { + @Test + public void testMoney_Exists() { + SlotMachine slot = new SlotMachine(0, 0, null, null, null, 10); + assertEquals(10, slot.getMoneyNeeded()); + } + + @Test + public void testNumOfSlots_Exists() { + SlotMachine slot = new SlotMachine(1, 0, null, null, null, 10); + assertEquals(1, slot.getNumOfSlots()); + } + + @Test + public void testNameOfSlot_Exists() { + SlotMachine slot = new SlotMachine(1, 0, "Goldie", null, null, 10); + assertEquals("Goldie", slot.getName()); + } + + @Test + public void testPayAmount_Exists() { + SlotMachine slot = new SlotMachine(1, 10, "Goldie", null, null, 10); + assertEquals(10, slot.getPayAmount()); + } + + @Test + public void testBuyType_Exists() { + SlotMachine slot = new SlotMachine(1, 10, "Goldie", null, null, 10); + assertEquals(null, slot.getBuyType()); + } + + @Test + public void testUseDoubleSlots() { + SlotMachine slottwo = new SlotMachine(1, 10, "Goldie", null, null, 10); + SlotMachine slotone = new SlotMachine(1, 10, "Diamond", null, null, 10); + assertEquals(1, slotone.getNumOfSlots()); + assertEquals(1, slottwo.getNumOfSlots()); + } + + @Test + public void testSlotSpin() { + SlotMachine slot = new SlotMachine(1, 10, "Goldie", null, null, 10); + assertEquals(null, slot.getIconList()); + } + + @Test + public void testPayOut() { + + ArrayList icons = new ArrayList<>(); + SlotMachine slotMachine1 = + new SlotMachine(1, 10, "Test Slot 1", BuyType.DOUBLE_CHANCE, icons, 10); + assertEquals(20, slotMachine1.payOut(), "Expected payout for DOUBLE_CHANCE to be 20"); + + SlotMachine slotMachine2 = new SlotMachine(1, 10, "Test Slot 2", BuyType.BONUS_BUY, icons, 10); + assertEquals(30, slotMachine2.payOut(), "Expected payout for BONUS_BUY to be 30"); + } +}