diff --git a/.gitignore b/.gitignore
index 40457b5..46041e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+.idea/
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
diff --git a/.idea/$PRODUCT_WORKSPACE_FILE$ b/.idea/$PRODUCT_WORKSPACE_FILE$
deleted file mode 100644
index 7d625f7..0000000
--- a/.idea/$PRODUCT_WORKSPACE_FILE$
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.8
-
-
-
-
-
-
-
-
-
-
-
- 1.8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 7a4bf35..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 4b661a5..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 43c1af2..b36c574 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,5 +21,18 @@
-
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ 5.4.2
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.4.2
+ test
+
+
\ No newline at end of file
diff --git a/src/main/java/App.java b/src/main/java/App.java
new file mode 100644
index 0000000..3479178
--- /dev/null
+++ b/src/main/java/App.java
@@ -0,0 +1,112 @@
+import io.Console;
+import models.Sneaker;
+import services.SneakerService;
+
+public class App {
+
+ private SneakerService sneakerService = new SneakerService();
+
+ public static void main(String... args) {
+ App application = new App();
+ application.init();
+ }
+
+ public void init() {
+ Console.println("Welcome!!");
+ Integer action = Console.getIntegerInput(
+ "1 create shoe\n" +
+ "2 read shoes\n" +
+ "3 update shoe\n" +
+ "4 delete shoe\n" +
+ "select action: ");
+ interpretUserAction(action);
+
+ }
+
+ public void interpretUserAction(Integer action) {
+ switch(action) {
+ case 1: // create
+ create("Shoe");
+ Console.println("New Sneaker created with id %s", sneakerService.size());
+ break;
+ case 2: // read
+ read("shoe");
+ break;
+ case 3: // update
+ update();
+ break;
+ case 4: // destroy
+ delete();
+ break;
+ case 5:
+ System.exit(0);
+ break;
+ default:
+ init();
+ }
+ init();
+ }
+
+ public void create(String product) {
+ String name = Console.getStringInput("%s name: ", product);
+ String brand = Console.getStringInput("%s brand: ", product);
+ String sport = Console.getStringInput("%s sport: ", product);
+ Double size = Console.getDoubleInput("%s size: ", product);
+ Integer quantity = Console.getIntegerInput("%s quantity: ", product);
+ Float price = Float.parseFloat(Console.getStringInput("%s price: ", product));
+
+ sneakerService.create(name, brand, sport, size, quantity, price);
+
+ }
+ public void read(String product) {
+ Console.println(sneakerService.toString());
+ }
+
+ public void update() {
+ Integer id = Console.getIntegerInput("enter id of sneaker to update: ");
+ Sneaker toUpdate = sneakerService.findSneaker(id);
+ Integer action = Console.getIntegerInput("Update Sneaker:\n" +
+ "1 : Name\n2 : Brand\n3 : Sport\n" +
+ "4 : Size\n5 : Quantity\n6 : Price\n" +
+ "Select attribute to update: ");
+ toUpdate = dispatchUpdate(action, toUpdate);
+ sneakerService.update(id, toUpdate);
+ Console.println("Shoe %s has been updated", id);
+ }
+
+ public Sneaker dispatchUpdate(Integer action, Sneaker sneaker) {
+ switch(action) {
+ case 1:
+ String name = Console.getStringInput("Change Name: ");
+ sneaker.setName(name);
+ break;
+ case 2:
+ String brand = Console.getStringInput("Change Brand: ");
+ sneaker.setBrand(brand);
+ break;
+ case 3:
+ String sport = Console.getStringInput("Change Sport: ");
+ sneaker.setSport(sport);
+ break;
+ case 4:
+ Double size = Console.getDoubleInput("Change Size: ");
+ sneaker.setSize(size);
+ break;
+ case 5:
+ Integer quantity = Console.getIntegerInput("Change Quantity: ");
+ sneaker.setQuantity(quantity);
+ break;
+ case 6:
+ Float price = Float.parseFloat(Console.getStringInput("Change Price: "));
+ sneaker.setPrice(price);
+ break;
+ }
+ return sneaker;
+ }
+
+ public void delete() {
+ Integer id = Console.getIntegerInput("Enter Id of Sneaker to delete: ");
+ if (sneakerService.delete(id)) Console.println("Sneaker %s successfully deleted", id);
+ else Console.println("Deletion failed");
+ }
+}
diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java
new file mode 100644
index 0000000..9d642ed
--- /dev/null
+++ b/src/main/java/io/Console.java
@@ -0,0 +1,48 @@
+package io;
+
+import java.util.Scanner;
+
+public class Console {
+ public static void print(String val, Object... args) {
+ System.out.print(String.format(val, args));
+ }
+
+ public static void println(String val, Object... args) {
+ print(val + "\n", args);
+ }
+
+ public static String getStringInput(String prompt, Object... args) {
+ Scanner scanner = new Scanner(System.in);
+ print(prompt, args);
+ return scanner.nextLine();
+ }
+
+ public static Double getDoubleInput(String prompt, Object... args) {
+ String stringInput = getStringInput(prompt, args);
+ try {
+ Double doubleInput = Double.parseDouble(stringInput);
+ return doubleInput;
+ } catch (NumberFormatException nfe) {
+ println("[ %s ] is an invalid user input!", stringInput);
+ println("Try inputting a numeric value!");
+ return getDoubleInput(prompt, args);
+ }
+ }
+
+ public static Long getLongInput(String prompt, Object... args) {
+ String stringInput = getStringInput(prompt, args);
+ try {
+ Long longInput = Long.parseLong(stringInput);
+ return longInput;
+ } catch (NumberFormatException nfe) {
+ println("[ %s ] is an invalid user input!", stringInput);
+ println("Try inputting an integer value!");
+ return getLongInput(prompt, args);
+ }
+ }
+
+ public static Integer getIntegerInput(String prompt, Object... args) {
+ return getLongInput(prompt, args).intValue();
+ }
+
+}
diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java
new file mode 100644
index 0000000..80b71dc
--- /dev/null
+++ b/src/main/java/models/Sneaker.java
@@ -0,0 +1,85 @@
+package models;
+
+public class Sneaker {
+ private Integer id;
+ private String name;
+ private String brand;
+ private String sport;
+ private Double size;
+ private Integer quantity;
+ private Float price;
+
+ public Sneaker() {}
+
+ public Sneaker(Integer id, String name, String brand, String sport, Double size, Integer quantity, Float price) {
+ this.id = id;
+ this.name = name;
+ this.brand = brand;
+ this.sport = sport;
+ this.size = size;
+ this.quantity = quantity;
+ this.price = price;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public String getSport() {
+ return sport;
+ }
+
+ public void setSport(String sport) {
+ this.sport = sport;
+ }
+
+ public Double getSize() {
+ return size;
+ }
+
+ public void setSize(Double size) {
+ this.size = size;
+ }
+
+ public Integer getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(Integer quantity) {
+ this.quantity = quantity;
+ }
+
+ public Float getPrice() {
+ return price;
+ }
+
+ public void setPrice(Float price) {
+ this.price = price;
+ }
+
+ public String toString() {
+ return String.format("\n%s %s %s %s %s %s %s", getId(),
+ getBrand(), getName(), getSport(),
+ getSize(), getQuantity(), getPrice());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java
new file mode 100644
index 0000000..f988c26
--- /dev/null
+++ b/src/main/java/models/Whiskey.java
@@ -0,0 +1,54 @@
+package models;
+
+public class Whiskey {
+ private Integer id;
+ private String name;
+ private String brand;
+ private Integer quantity;
+ private Float price;
+
+ public Whiskey() {}
+
+ public Whiskey(Integer id, String name, String brand, Integer quantity, Float price) {
+ this.id = id;
+ this.name = name;
+ this.brand = brand;
+ this.quantity = quantity;
+ this.price = price;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public Integer getQuantity() {
+ return quantity;
+ }
+ public void setQuantity(Integer quantity) {
+ this.quantity = quantity;
+ }
+
+ public Float getPrice() {
+ return price;
+ }
+ public void setPrice(Float price) {
+ this.price = price;
+ }
+}
diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java
new file mode 100644
index 0000000..2c04542
--- /dev/null
+++ b/src/main/java/services/SneakerService.java
@@ -0,0 +1,68 @@
+package services;
+import models.Sneaker;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class SneakerService {
+ private static int nextId = 1;
+
+ private ArrayList inventory = new ArrayList<>();
+
+ public Sneaker create(String name, String brand, String sport, Double size, Integer quantity, Float price) {
+ Sneaker createdSneaker = new Sneaker(nextId++, name, brand, sport, size, quantity, price);
+ inventory.add(createdSneaker);
+ return createdSneaker;
+ }
+
+ public Integer size() {
+ return inventory.size();
+ }
+
+ //read
+ public Sneaker findSneaker(int id) {
+ // should take an int and return an object with that id, if exists
+ return inventory.get(id-1);
+ }
+
+ //read all
+ public Sneaker[] findAll() {
+ // should return a basic array copy of the ArrayList
+ Integer len = inventory.size();
+ Sneaker[] sneaks = new Sneaker[len];
+ for (int i = 0; i < len; i++) {
+ sneaks[i] = inventory.get(i);
+ }
+ return sneaks;
+ }
+
+ //delete
+ public Boolean delete(int id) {
+ // should remove the object with this id from the ArrayList if exits and return true.
+ // Otherwise return false
+ Boolean outcome = false;
+ if (id <= inventory.size()) {
+ inventory.remove(id-1);
+ outcome = true;
+ }
+ return outcome;
+ }
+
+ public String toString() {
+ StringBuilder out = new StringBuilder();
+ out.append("Sneaker Inventory:\n" +
+ "Id Brand Name Sport Size Qty Price");
+ for (Sneaker sneaker : inventory) {
+ out.append(sneaker.toString());
+ }
+ return out.toString();
+ }
+
+// public void update(Integer id, String name, String brand, String sport, Double size, Integer quantity, Float price) {
+// Sneaker updated = new Sneaker(id, name, brand, sport, size, quantity, price);
+// inventory.set(id-1, updated);
+// }
+
+ public void update(Integer id, Sneaker updated) {
+ inventory.set(id-1, updated);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java
new file mode 100644
index 0000000..a5e5522
--- /dev/null
+++ b/src/main/java/services/WhiskeyService.java
@@ -0,0 +1,38 @@
+package services;
+
+import models.Whiskey;
+
+import java.util.ArrayList;
+
+public class WhiskeyService {
+ private static int nextId = 1;
+ private ArrayList inventory = new ArrayList<>();
+
+ public Whiskey create(String name, String brand, Integer quantity, Float price) {
+ Whiskey createdWhiskey = new Whiskey(nextId++, name, brand, quantity, price);
+ inventory.add(createdWhiskey);
+ return createdWhiskey;
+ }
+
+ public Whiskey findWhiskey(int id) {
+ return inventory.get(id-1);
+ }
+
+ public Whiskey[] findAll() {
+ Integer len = inventory.size();
+ Whiskey[] whisks = new Whiskey[len];
+ for (int i = 0; i < len; i++) {
+ whisks[i] = inventory.get(i);
+ }
+ return whisks;
+ }
+
+ public Boolean delete(int id) {
+ Boolean outcome = false;
+ if (id <= inventory.size()) {
+ inventory.remove(id);
+ outcome = true;
+ }
+ return outcome;
+ }
+}
diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java
new file mode 100644
index 0000000..28dd6cb
--- /dev/null
+++ b/src/test/java/models/SneakerTest.java
@@ -0,0 +1,101 @@
+package models;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SneakerTest {
+ @Test
+ public void constructorTest() {
+// (2)
+ Integer expectedId = 6;
+ String expectedName = "Stan Smith";
+ String expectedBrand = "Adidas";
+ String expectedSport = "Tennnis";
+ Double expectedSize = 11.5;
+ Integer expectedQty = 10;
+ Float expectedPrice = 80.00f;
+
+ // (3)
+ Sneaker testSneaker = new Sneaker(expectedId, expectedName, expectedBrand, expectedSport, expectedSize, expectedQty,expectedPrice);
+
+ // (4)
+ Assert.assertEquals(expectedId, testSneaker.getId());
+ Assert.assertEquals(expectedName, testSneaker.getName());
+ Assert.assertEquals(expectedBrand, testSneaker.getBrand());
+ Assert.assertEquals(expectedSport, testSneaker.getSport());
+ Assert.assertEquals(expectedSize, testSneaker.getSize());
+ Assert.assertEquals(expectedQty, testSneaker.getQuantity());
+ Assert.assertEquals(expectedPrice, testSneaker.getPrice());
+ }
+
+ @Test
+ public void setIdTest() {
+ Integer expected = 78;
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setId(expected);
+
+ Assert.assertEquals(expected, testSneaker.getId());
+ }
+
+ @Test
+ public void setNameTest() {
+ String expected = "Shoename";
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setName(expected);
+
+ Assert.assertEquals(expected, testSneaker.getName());
+ }
+
+ @Test
+ public void setBrandTest() {
+ String expected = "Nike";
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setBrand(expected);
+
+ Assert.assertEquals(expected, testSneaker.getBrand());
+ }
+
+ @Test
+ public void setSportTest() {
+ String expected = "Climbing";
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setSport(expected);
+
+ Assert.assertEquals(expected, testSneaker.getSport());
+ }
+
+ @Test
+ public void setSizeTest() {
+ Double expected = 12.5;
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setSize(expected);
+
+ Assert.assertEquals(expected, testSneaker.getSize());
+ }
+
+ @Test
+ public void setQuantityTest() {
+ Integer expected = 1300;
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setQuantity(expected);
+
+ Assert.assertEquals(expected, testSneaker.getQuantity());
+ }
+
+ @Test
+ public void setPriceTest() {
+ Float expected = 98.78f;
+
+ Sneaker testSneaker = new Sneaker();
+ testSneaker.setPrice(expected);
+
+ Assert.assertEquals(expected, testSneaker.getPrice());
+
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java
new file mode 100644
index 0000000..2a83610
--- /dev/null
+++ b/src/test/java/models/WhiskeyTest.java
@@ -0,0 +1,77 @@
+package models;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class WhiskeyTest {
+ @Test
+ public void constructorTest() {
+// (2)
+ Integer expectedId = 6;
+ String expectedName = "Delishkey";
+ String expectedBrand = "FancyWhiskey";
+ Integer expectedQty = 10;
+ Float expectedPrice = 80.00f;
+
+ // (3)
+ Whiskey testWhiskey = new Whiskey(expectedId, expectedName, expectedBrand, expectedQty,expectedPrice);
+
+ // (4)
+ Assert.assertEquals(expectedId, testWhiskey.getId());
+ Assert.assertEquals(expectedName, testWhiskey.getName());
+ Assert.assertEquals(expectedBrand, testWhiskey.getBrand());
+ Assert.assertEquals(expectedQty, testWhiskey.getQuantity());
+ Assert.assertEquals(expectedPrice, testWhiskey.getPrice());
+ }
+
+ @Test
+ public void setIdTest() {
+ Integer expected = 78;
+
+ Whiskey testWhiskey = new Whiskey();
+ testWhiskey.setId(expected);
+
+ Assert.assertEquals(expected, testWhiskey.getId());
+ }
+
+ @Test
+ public void setNameTest() {
+ String expected = "whiskeyname";
+
+ Whiskey testWhiskey = new Whiskey();
+ testWhiskey.setName(expected);
+
+ Assert.assertEquals(expected, testWhiskey.getName());
+ }
+
+ @Test
+ public void setBrandTest() {
+ String expected = "whiskeybrand";
+
+ Whiskey testWhiskey = new Whiskey();
+ testWhiskey.setBrand(expected);
+
+ Assert.assertEquals(expected, testWhiskey.getBrand());
+ }
+
+ @Test
+ public void setQuantityTest() {
+ Integer expected = 1300;
+
+ Whiskey testWhiskey = new Whiskey();
+ testWhiskey.setQuantity(expected);
+
+ Assert.assertEquals(expected, testWhiskey.getQuantity());
+ }
+
+ @Test
+ public void setPriceTest() {
+ Float expected = 98.78f;
+
+ Whiskey testWhiskey = new Whiskey();
+ testWhiskey.setPrice(expected);
+
+ Assert.assertEquals(expected, testWhiskey.getPrice());
+
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java
new file mode 100644
index 0000000..08cc38e
--- /dev/null
+++ b/src/test/java/services/SneakerServiceTest.java
@@ -0,0 +1,92 @@
+package services;
+
+import models.Sneaker;
+
+import org.junit.Test;
+import org.junit.Assert;
+
+public class SneakerServiceTest {
+ @Test
+ public void createTest(){
+
+ // (1)
+ String expectedName = "Stan Smith";
+ String expectedBrand = "Adidas";
+ String expectedSport = "Tennis";
+ Double expectedSize = 10.5;
+ Integer expectedQty = 10;
+ Float expectedPrice = 80.00f;
+
+ // (2)
+ SneakerService sneakerService = new SneakerService();
+ Sneaker testSneaker = sneakerService.create(expectedName, expectedBrand,
+ expectedSport, expectedSize, expectedQty, expectedPrice);
+
+ // (3)
+ Integer actualId = testSneaker.getId();
+ String actualName = testSneaker.getName();
+ String actualBrand = testSneaker.getBrand();
+ String actualSport = testSneaker.getSport();
+ Double actualSize = testSneaker.getSize();
+ Integer actualQty = testSneaker.getQuantity();
+ Float actualPrice = testSneaker.getPrice();
+
+ // (4)
+ Assert.assertEquals(Integer.class.getName(), new Integer(actualId).getClass().getName());
+ Assert.assertEquals(expectedName, actualName);
+ Assert.assertEquals(expectedBrand, actualBrand);
+ Assert.assertEquals(expectedSport, actualSport);
+ Assert.assertEquals(expectedSize, actualSize);
+ Assert.assertEquals(expectedQty, actualQty);
+ Assert.assertEquals(expectedPrice, actualPrice);
+
+ }
+
+ @Test
+ public void findSneakerTest() {
+ SneakerService sneakerService = new SneakerService();
+ for (int i = 0; i < 5; i++) {
+ sneakerService.create("name"+i, "brand"+i, "sport"+i, 1.1, 34, 45.44f);
+ }
+ Sneaker actual = sneakerService.findSneaker(4);
+ Sneaker expected = new Sneaker(4, "name3", "brand3", "sport3", 1.1, 34, 45.44f);
+// Assert.assertEquals(expected.getId(), actual.getId());
+ Assert.assertEquals(expected.getName(), actual.getName());
+ Assert.assertEquals(expected.getBrand(), actual.getBrand());
+ Assert.assertEquals(expected.getQuantity(), actual.getQuantity());
+ Assert.assertEquals(expected.getPrice(), actual.getPrice());
+ }
+
+ @Test
+ public void findAllTest() {
+ Sneaker[] expected = new Sneaker[5];
+ SneakerService sneakerService = new SneakerService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = sneakerService.create("name"+i, "brand"+i, "sport"+i, 1.1, 34, 45.44f);
+ }
+ Sneaker[] actual = sneakerService.findAll();
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void deleteTest1() {
+ Sneaker[] expected = new Sneaker[5];
+ SneakerService sneakerService = new SneakerService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = sneakerService.create("name"+i, "brand"+i, "sport"+i, 1.1, 34, 45.44f);
+ }
+ Boolean actual = sneakerService.delete(4);
+ Assert.assertTrue(actual);
+ }
+ @Test
+ public void deleteTest2() {
+ Sneaker[] expected = new Sneaker[5];
+ SneakerService sneakerService = new SneakerService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = sneakerService.create("name"+i, "brand"+i, "sport"+i, 1.1, 34, 45.44f);
+ }
+ sneakerService.delete(4);
+ Sneaker[] actual = sneakerService.findAll();
+ Assert.assertNotEquals(expected, actual);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/services/WhiskeyServiceTest.java b/src/test/java/services/WhiskeyServiceTest.java
new file mode 100644
index 0000000..6545f6a
--- /dev/null
+++ b/src/test/java/services/WhiskeyServiceTest.java
@@ -0,0 +1,73 @@
+package services;
+
+import models.Whiskey;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class WhiskeyServiceTest {
+ @Test
+ public void createTest(){
+
+ String expectedName = "Delishkey";
+ String expectedBrand = "FancyWhiskey";
+ Integer expectedQty = 10;
+ Float expectedPrice = 80.00f;
+
+ // (3)
+ WhiskeyService whiskeyService = new WhiskeyService();
+ Whiskey testWhiskey = whiskeyService.create(expectedName, expectedBrand, expectedQty, expectedPrice);
+ // (4)
+ Assert.assertEquals(expectedName, testWhiskey.getName());
+ Assert.assertEquals(expectedBrand, testWhiskey.getBrand());
+ Assert.assertEquals(expectedQty, testWhiskey.getQuantity());
+ Assert.assertEquals(expectedPrice, testWhiskey.getPrice());
+ }
+
+ @Test
+ public void findWhiskeyTest() {
+ WhiskeyService whiskeyService = new WhiskeyService();
+ for (int i = 0; i < 5; i++) {
+ whiskeyService.create("name"+i, "brand"+i, 34, 45.44f);
+ }
+ Whiskey actual = whiskeyService.findWhiskey(4);
+ Whiskey expected = new Whiskey(4, "name3", "brand3",34, 45.44f);
+// Assert.assertEquals(expected.getId(), actual.getId());
+ Assert.assertEquals(expected.getName(), actual.getName());
+ Assert.assertEquals(expected.getBrand(), actual.getBrand());
+ Assert.assertEquals(expected.getQuantity(), actual.getQuantity());
+ Assert.assertEquals(expected.getPrice(), actual.getPrice());
+ }
+
+ @Test
+ public void findAllTest() {
+ Whiskey[] expected = new Whiskey[5];
+ WhiskeyService whiskeyService = new WhiskeyService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = whiskeyService.create("name"+i, "brand"+i, 34, 45.44f);
+ }
+ Whiskey[] actual = whiskeyService.findAll();
+ Assert.assertEquals(expected, actual);
+ }
+
+ @Test
+ public void deleteTest1() {
+ Whiskey[] expected = new Whiskey[5];
+ WhiskeyService whiskeyService = new WhiskeyService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = whiskeyService.create("name"+i, "brand"+i, 34, 45.44f);
+ }
+ Boolean actual = whiskeyService.delete(4);
+ Assert.assertTrue(actual);
+ }
+ @Test
+ public void deleteTest2() {
+ Whiskey[] expected = new Whiskey[5];
+ WhiskeyService whiskeyService = new WhiskeyService();
+ for (int i = 0; i < 5; i++) {
+ expected[i] = whiskeyService.create("name"+i, "brand"+i, 34, 45.44f);
+ }
+ whiskeyService.delete(4);
+ Whiskey[] actual = whiskeyService.findAll();
+ Assert.assertNotEquals(expected, actual);
+ }
+}