diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Sneakers.csv b/Sneakers.csv
new file mode 100644
index 0000000..c5c50b0
--- /dev/null
+++ b/Sneakers.csv
@@ -0,0 +1,2 @@
+2
+1,Ch123,nike,soccer,8.0,5,34.0
diff --git a/Sneakers.json b/Sneakers.json
new file mode 100644
index 0000000..fb08d5c
--- /dev/null
+++ b/Sneakers.json
@@ -0,0 +1,33 @@
+[ {
+ "id" : 1,
+ "name" : "gh12",
+ "brand" : "puma",
+ "sport" : "basketball",
+ "size" : 8.0,
+ "quantity" : 8,
+ "price" : 99.0
+}, {
+ "id" : 2,
+ "name" : "bgh12",
+ "brand" : "adidas",
+ "sport" : "soccer",
+ "size" : 8.0,
+ "quantity" : 6,
+ "price" : 78.0
+}, {
+ "id" : 3,
+ "name" : "cgy12",
+ "brand" : "nike",
+ "sport" : "fotball",
+ "size" : 7.0,
+ "quantity" : 8,
+ "price" : 98.0
+}, {
+ "id" : 4,
+ "name" : "hh32",
+ "brand" : "Sketchers",
+ "sport" : "tennis",
+ "size" : 7.0,
+ "quantity" : 5,
+ "price" : 45.0
+} ]
\ No newline at end of file
diff --git a/Sneakers.txt b/Sneakers.txt
new file mode 100644
index 0000000..261a1e0
--- /dev/null
+++ b/Sneakers.txt
@@ -0,0 +1 @@
+nextId : 5
\ No newline at end of file
diff --git a/Whiskey.csv b/Whiskey.csv
new file mode 100644
index 0000000..be4daed
--- /dev/null
+++ b/Whiskey.csv
@@ -0,0 +1,2 @@
+2
+1,cdh,23,456.0
diff --git a/Whiskey.json b/Whiskey.json
new file mode 100644
index 0000000..fbd211b
--- /dev/null
+++ b/Whiskey.json
@@ -0,0 +1,16 @@
+[ {
+ "id" : 1,
+ "quantity" : 5,
+ "price" : 56.0,
+ "brand" : "jack"
+}, {
+ "id" : 2,
+ "quantity" : 6,
+ "price" : 87.0,
+ "brand" : "black"
+}, {
+ "id" : 3,
+ "quantity" : 7,
+ "price" : 54.0,
+ "brand" : "abc"
+} ]
\ No newline at end of file
diff --git a/Whiskey.txt b/Whiskey.txt
new file mode 100644
index 0000000..a86e296
--- /dev/null
+++ b/Whiskey.txt
@@ -0,0 +1 @@
+nextId4
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 43c1af2..677f19b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,25 @@
io.zipcodewilmington
ProductInventoryLab
1.0-SNAPSHOT
-
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ 5.4.2
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.4.2
+ test
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.16.2
+
+
diff --git a/src/main/java/Models/Sneakers.java b/src/main/java/Models/Sneakers.java
new file mode 100644
index 0000000..9877d61
--- /dev/null
+++ b/src/main/java/Models/Sneakers.java
@@ -0,0 +1,88 @@
+package Models;
+
+public class Sneakers {
+ private Integer id;
+ private String name;
+ private String brand;
+ private String sport;
+ private float size;
+ private int quantity;
+ private float price;
+
+ public Sneakers(Integer id, String name, String brand, String sport, float size,
+ int 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 Sneakers(){
+
+ }
+ 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 float getSize() {
+ return size;
+ }
+
+ public void setSize(float size) {
+ this.size = size;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public float getPrice() {
+ return price;
+ }
+
+ public void setPrice(float price) {
+ this.price = price;
+ }
+ @Override
+ public String toString(){
+ return "Id: "+this.id + ", Name: "+ this.name +", Brand: "+this.brand +", Sport: "+ this.sport +", Size: "+ this.size+
+ ", Quantity: "+ this.quantity+ ", Price: "+ this.price;
+ }
+}
+
+
diff --git a/src/main/java/Models/Whiskey.java b/src/main/java/Models/Whiskey.java
new file mode 100644
index 0000000..b805896
--- /dev/null
+++ b/src/main/java/Models/Whiskey.java
@@ -0,0 +1,55 @@
+package Models;
+
+public class Whiskey {
+ private int id;
+ private int quantity;
+ private float price;
+ private String brand;
+
+ public Whiskey(int id, String brand, int quantity, float price) {
+ this.id = id;
+ this.brand = brand;
+ this.quantity = quantity;
+ this.price = price;
+ }
+ public Whiskey(){
+
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public float getPrice() {
+ return price;
+ }
+
+ public void setPrice(float price) {
+ this.price = price;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+ @Override
+ public String toString(){
+ return "Id: "+this.id +", Brand: "+this.brand + ", Quantity: "+ this.quantity+ ", Price: "+ this.price;
+ }
+
+}
diff --git a/src/main/java/Services/SneakersService.java b/src/main/java/Services/SneakersService.java
new file mode 100644
index 0000000..4bc4079
--- /dev/null
+++ b/src/main/java/Services/SneakersService.java
@@ -0,0 +1,123 @@
+package Services;
+
+import Models.Sneakers;
+import Utils.CSVUtils;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectWriter;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class SneakersService {
+
+ private static int nextId = 1;
+
+ private List inventory = new ArrayList<>();
+
+ public Sneakers create(String name, String brand, String sport,
+ float size, int quantity, float price) {
+
+ Sneakers createdSneaker = new Sneakers(nextId++, name, brand, sport, size, quantity, price);
+ inventory.add(createdSneaker);
+ return createdSneaker;
+ }
+
+ public List getInventory() {
+ return inventory;
+ }
+ public Sneakers findSneaker(int id){
+ for(Sneakers s : inventory){
+ if(s.getId().equals(id)){
+ return s;
+ }
+ }
+ return null;
+ }
+ public Sneakers[] findAll() {
+ // should return a basic array copy of the ArrayList
+ Sneakers[] array = new Sneakers[inventory.size()];
+ return inventory.toArray(array);
+ }
+ public boolean delete(int id) {
+ // should remove the object with this id from the ArrayList if exits and return true.
+ // Otherwise, return false
+ for (int i =0;i(Arrays.asList(String.valueOf(nextId))));
+//
+// for (Sneakers s : inventory) {
+// List list = new ArrayList<>();
+// list.add(String.valueOf(s.getId()));
+// list.add(s.getName());
+// list.add(s.getBrand());
+// list.add(s.getSport());
+// list.add(String.valueOf(s.getSize()));
+// list.add(String.valueOf(s.getQuantity()));
+// list.add(String.valueOf(s.getPrice()));
+//
+// CSVUtils.writeLine(writer, list);
+// }
+//
+// writer.flush();
+// writer.close();
+ }
+ public void loadData() throws IOException {
+ String jsonFile = "/Users/diksha/Desktop/projects-2/Product-Inventory-Lab/Sneakers.json";
+ ObjectMapper objectMapper = new ObjectMapper();
+ this.inventory = objectMapper.readValue(new File(jsonFile), new TypeReference>(){});
+ this.nextId = inventory.size()+1;
+// String line = "";
+// String csvSplitBy = ",";
+//
+// try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
+// nextId = Integer.parseInt(br.readLine());
+//
+// while ((line = br.readLine()) != null) {
+// // split line with comma
+// String[] beer = line.split(csvSplitBy);
+//
+// int id = Integer.parseInt(beer[0]);
+// String name = beer[1];
+// String brand = beer[2];
+// String sport = beer[3];
+// float size = Float.parseFloat(beer[4]);
+// int quantity = Integer.parseInt(beer[5]);
+// float price = Float.parseFloat(beer[6]);
+//
+// inventory.add(new Sneakers(id, name, brand, sport, size, quantity, price));
+// }
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+
+ }
+
+
+}
diff --git a/src/main/java/Services/WhiskeyService.java b/src/main/java/Services/WhiskeyService.java
new file mode 100644
index 0000000..f9a3b3a
--- /dev/null
+++ b/src/main/java/Services/WhiskeyService.java
@@ -0,0 +1,117 @@
+package Services;
+import Models.Sneakers;
+import Models.Whiskey;
+import Utils.CSVUtils;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.ObjectWriter;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class WhiskeyService {
+ private static int nextId = 1;
+ private List WhiskyInventory = new ArrayList<>();
+
+ public Whiskey create(String brand, int quantity, float price) {
+ Whiskey createdWhiskey = new Whiskey(nextId++, brand, quantity, price);
+ WhiskyInventory.add(createdWhiskey);
+ return createdWhiskey;
+ }
+
+ public List getWhiskyInventory() {
+ return WhiskyInventory;
+ }
+
+ public Whiskey findWhiskey(int id){
+ for(Whiskey w : WhiskyInventory){
+ if(w.getId() == id){
+ return w;
+ }
+ }
+ return null;
+ }
+ public Whiskey[] findAll() {
+ // should return a basic array copy of the ArrayList
+ Whiskey[] array = new Whiskey[WhiskyInventory.size()];
+ return WhiskyInventory.toArray(array);
+ }
+ public boolean delete(int id) {
+ // should remove the object with this id from the ArrayList if exits and return true.
+ // Otherwise, return false
+ for (int i =0;i(Arrays.asList(String.valueOf(nextId))));
+//
+// for (Whiskey w : WhiskyInventory) {
+// List list = new ArrayList<>();
+// list.add(String.valueOf(w.getId()));
+// list.add(w.getBrand());
+// list.add(String.valueOf(w.getQuantity()));
+// list.add(String.valueOf(w.getPrice()));
+//
+// CSVUtils.writeLine(writer, list);
+// }
+//
+// writer.flush();
+// writer.close();
+// }
+
+ public void loadData() throws IOException {
+ String jsonFile = "/Users/diksha/Desktop/projects-2/Product-Inventory-Lab/Whiskey.json";
+ ObjectMapper objectMapper = new ObjectMapper();
+ this.WhiskyInventory = objectMapper.readValue(new File(jsonFile), new TypeReference>(){});
+ this.nextId = WhiskyInventory.size()+1;
+
+ }
+// String csvFile = "/Users/diksha/Desktop/projects-2/Product-Inventory-Lab/Whiskey.csv";
+// String line = "";
+// String csvSplitBy = ",";
+//
+// try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
+// nextId = Integer.parseInt(br.readLine());
+//
+// while ((line = br.readLine()) != null) {
+// // split line with comma
+// String[] beer = line.split(csvSplitBy);
+//
+// int id = Integer.parseInt(beer[0]);
+// String brand = beer[1];
+// int quantity = Integer.parseInt(beer[2]);
+// float price = Float.parseFloat(beer[3]);
+//
+// WhiskyInventory.add(new Whiskey(id, brand, quantity, price));
+// }
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+}
diff --git a/src/main/java/Utils/CSVUtils.java b/src/main/java/Utils/CSVUtils.java
new file mode 100644
index 0000000..d68dac0
--- /dev/null
+++ b/src/main/java/Utils/CSVUtils.java
@@ -0,0 +1,26 @@
+package Utils;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.List;
+
+public class CSVUtils {
+ private static final char DEFAULT_SEPARATOR = ','; // (1)
+
+ public static void writeLine(Writer w, List values) throws IOException {
+ boolean first = true;
+
+ StringBuilder sb = new StringBuilder();
+
+ for (String value : values) {
+ if (!first) {
+ sb.append(DEFAULT_SEPARATOR);
+ }
+ sb.append(value);
+ first = false;
+ }
+ sb.append("\n");
+
+ w.append(sb.toString());
+ }
+}
diff --git a/src/main/java/io/Application.java b/src/main/java/io/Application.java
new file mode 100644
index 0000000..252b7ec
--- /dev/null
+++ b/src/main/java/io/Application.java
@@ -0,0 +1,60 @@
+package io;
+
+import Services.SneakersService;
+import Services.WhiskeyService;
+
+import java.io.IOException;
+import java.util.Scanner;
+
+public class Application {
+ private SneakersService sneakerService = new SneakersService();
+ private WhiskeyService whiskeyService = new WhiskeyService();
+ public static void main(String args[]){
+ Application application = new Application();
+ try {
+ application.init();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private void init() throws IOException {
+ Console.printWelcome();
+ while(true){
+ Console.displayMainMenu();
+ String action = Console.getActionFromUser();
+ switch (action){
+ case "Create":
+ Console.createProduct(sneakerService, whiskeyService);
+ break;
+ case "Read":
+ Console.readProduct(sneakerService, whiskeyService);
+ break;
+ case "Update":
+ Console.updateProduct(sneakerService, whiskeyService);
+ break;
+ case "Delete":
+ Console.deleteProduct(sneakerService, whiskeyService);
+ break;
+ case "Reports" :
+ Console.getTotalInventory(sneakerService,whiskeyService);
+ break;
+ case "Save" :
+ whiskeyService.saveData();
+ sneakerService.saveData();
+ break;
+ case "Load" :
+ sneakerService.loadData();
+ whiskeyService.loadData();
+ break;
+ default:
+ System.out.println("Wrong Input");
+ break;
+ }
+ }
+
+ }
+
+
+ }
+
diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java
new file mode 100644
index 0000000..2d8b764
--- /dev/null
+++ b/src/main/java/io/Console.java
@@ -0,0 +1,291 @@
+package io;
+
+import Models.Sneakers;
+import Models.Whiskey;
+import Services.SneakersService;
+import Services.WhiskeyService;
+
+import java.util.Scanner;
+
+public class Console {
+ public static void printWelcome(){
+ System.out.println("" +
+ "**************************************************\n" +
+ "*** Welcome ***\n" +
+ "*** to ***\n" +
+ "*** Diksha's Inventory ***\n" +
+ "**************************************************\n");
+ }
+ public static void displayMainMenu(){
+ System.out.println("Main Menu\n Choose between 1-8 \n"+"1. Create products to be added to inventory\n" +
+ "2. Read from existing products\n" +
+ "3. Update products\n" +
+ "4. Delete products\n" +
+ "5. Get different reports about products\n" +
+ "6. Save Data\n"+
+ "7. Load Data\n"+
+ "8. Exit the program");
+
+ }
+ public static String getActionFromUser() {
+ while (true) {
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ return "Create";
+ case 2:
+ return "Read";
+ case 3:
+ return "Update";
+ case 4:
+ return "Delete";
+ case 5:
+ return "Reports";
+ case 6:
+ return "Save";
+ case 7:
+ return "Load";
+ case 8:
+ System.exit(0);
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+ }
+
+
+ public static void createSneaker(SneakersService ss){
+ Scanner sc = new Scanner(System.in);
+ System.out.println("Enter name:");
+ String name = sc.nextLine();
+ System.out.println("Enter brand:");
+ String brand = sc.nextLine();
+ System.out.println("Enter sport:");
+ String sport = sc.nextLine();
+ System.out.println("Enter size:");
+ float size = sc.nextFloat();
+ System.out.println("Enter quantity:");
+ int quantity = sc.nextInt();
+ System.out.println("Enter price:");
+ float price = sc.nextFloat();
+ ss.create(name, brand, sport, size, quantity, price);
+
+ }
+ public static void updateSneaker(Sneakers s){
+ Scanner sc = new Scanner(System.in);
+ System.out.println("Enter name:");
+ String name = sc.nextLine();
+ if(name!=null){
+ s.setName(name);
+ }
+ System.out.println("Enter brand:");
+ String brand = sc.nextLine();
+ if(brand!=null){
+ s.setBrand(brand);
+ }
+ System.out.println("Enter sport:");
+ String sport = sc.nextLine();
+ if(sport!=null){
+ s.setSport(sport);
+ }
+ System.out.println("Enter size:");
+ float size = sc.nextFloat();
+ s.setSize(size);
+ System.out.println("Enter quantity:");
+ int quantity = sc.nextInt();
+ s.setQuantity(quantity);
+ System.out.println("Enter price:");
+ float price = sc.nextFloat();
+ s.setPrice(price);
+
+
+ }
+
+
+ public static void createWhiskey(WhiskeyService ws){
+ Scanner sc = new Scanner(System.in);
+ System.out.println("Enter brand:");
+ String brand = sc.nextLine();
+ System.out.println("Enter quantity:");
+ int quantity = sc.nextInt();
+ System.out.println("Enter price:");
+ float price = sc.nextFloat();
+ ws.create(brand, quantity, price);
+
+ }
+ public static void createProduct(SneakersService ss, WhiskeyService ws){
+ while (true) {
+ System.out.println("Choose product you want to add by writing 1 or 2 \n"+
+ "1. Sneakers\n2. Whiskey");
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ createSneaker(ss);
+ return;
+ case 2:
+ createWhiskey(ws);
+ return;
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+ }
+
+
+ public static void readProduct(SneakersService ss, WhiskeyService ws) {
+ while (true) {
+ System.out.println("Choose product you want to read by writing 1 or 2 \n"+
+ "1. Sneakers\n2. Whiskey");
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ readSneaker(ss);
+ return;
+ case 2:
+ readWhiskey(ws);
+ return;
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+ }
+
+ private static void readWhiskey(WhiskeyService ws) {
+ System.out.println();
+ for (Whiskey whiskey : ws.getWhiskyInventory()) {
+ System.out.println(whiskey);
+ }
+ System.out.println();
+ }
+
+ private static void readSneaker(SneakersService ss) {
+ for (Sneakers sneakers : ss.getInventory()) {
+ System.out.println(sneakers.toString());
+ }
+ System.out.println();
+ }
+ public static void updateProduct(SneakersService ss, WhiskeyService ws) {
+ while (true) {
+ System.out.println("Choose product you want to update by writing 1 or 2 \n"+
+ "1. Sneakers\n2. Whiskey");
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ readSneaker(ss);
+ System.out.println("Choose id you want to update");
+ int productId = sc.nextInt();
+ Sneakers sneaker = ss.findSneaker(productId);
+ updateSneaker(sneaker);
+ return;
+ case 2:
+ readWhiskey(ws);
+ System.out.println("Choose id you want to update");
+ int productId1 = sc.nextInt();
+ Whiskey whiskey = ws.findWhiskey(productId1);
+ updateWhiskey(whiskey);
+ return;
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+ }
+
+ private static void updateWhiskey(Whiskey w) {
+ Scanner sc = new Scanner(System.in);
+ System.out.println("Enter brand:");
+ String brand = sc.nextLine();
+ if(brand!=null){
+ w.setBrand(brand);
+ }
+ System.out.println("Enter quantity:");
+ int quantity = sc.nextInt();
+ w.setQuantity(quantity);
+
+ System.out.println("Enter price:");
+ float price = sc.nextFloat();
+ w.setPrice(price);
+
+ }
+
+ public static void deleteProduct(SneakersService ss, WhiskeyService ws) {
+ while (true) {
+ System.out.println("Choose product you want to delete by writing 1 or 2 \n"+
+ "1. Sneakers\n2. Whiskey");
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ readSneaker(ss);
+ System.out.println("Choose id you want to delete");
+ int productId = sc.nextInt();
+ System.out.println("Item Deleted: "+ss.delete(productId));
+ return;
+ case 2:
+ readWhiskey(ws);
+ System.out.println("Choose id you want to delete");
+ int productId1 = sc.nextInt();
+ System.out.println("Item Deleted: "+ws.delete(productId1));
+ return;
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+
+ }
+
+ public static void getTotalInventory(SneakersService ss, WhiskeyService ws) {
+ while (true) {
+ System.out.println("Choose product you want to get total inventory by writing 1 or 2 \n"+
+ "1. Sneakers\n2. Whiskey");
+ Scanner sc = new Scanner(System.in);
+ int userInput = sc.nextInt();
+
+ switch (userInput) {
+ case 1:
+ int totalInventory = 0;
+ for(Sneakers s : ss.getInventory()){
+ totalInventory += s.getQuantity();
+ }
+ System.out.println("Total sneakers in inventory is: "+totalInventory);
+
+ return;
+ case 2:
+ int totalInventoryWhiskey = 0;
+ for(Whiskey w : ws.getWhiskyInventory()){
+ totalInventoryWhiskey += w.getQuantity();
+ }
+ System.out.println("Total whiskey in inventory is: "+ totalInventoryWhiskey);
+ return;
+ default:
+ System.out.println("Try Again\n");
+ displayMainMenu();
+ break;
+
+ }
+ }
+ }
+}
diff --git a/src/test/java/Models/SneakerTest.java b/src/test/java/Models/SneakerTest.java
new file mode 100644
index 0000000..1cbda8b
--- /dev/null
+++ b/src/test/java/Models/SneakerTest.java
@@ -0,0 +1,103 @@
+package Models;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class SneakerTest {
+ @Test
+ public void ConstructorTest(){
+ Integer expectedId = 6;
+ String expectedName = "Stan Smith";
+ String expectedBrand = "Nike";
+ String expectedSport = "Tennis";
+ int expectedQuantity = 10;
+ float expectedSize = 8.5f;
+ float expectedPrice = 80.00f;
+
+ Sneakers testSneakers = new Sneakers(expectedId, expectedName, expectedBrand,
+ expectedSport, expectedSize, expectedQuantity,expectedPrice);
+
+ Assertions.assertEquals(expectedId, testSneakers.getId());
+ Assertions.assertEquals(expectedName, testSneakers.getName());
+ Assertions.assertEquals(expectedBrand, testSneakers.getBrand());
+ Assertions.assertEquals(expectedSport, testSneakers.getSport());
+ Assertions.assertEquals(expectedSize, testSneakers.getSize());
+ Assertions.assertEquals(expectedQuantity, testSneakers.getQuantity());
+ Assertions.assertEquals(expectedPrice, testSneakers.getPrice());
+ }
+ @Test
+ public void SetNameTest(){
+ //Given
+ String expected = "Stan Smith";
+ //when
+ Sneakers testName = new Sneakers(6,"Stan Smith","Nike","Tennis",8.0f,10,80.00f);
+ testName.setName(expected);
+ //then
+ Assertions.assertEquals(expected,testName.getName());
+ }
+
+ @Test
+ public void SetIdTest(){
+ //Given
+ int expected = 6;
+ //when
+ Sneakers testId = new Sneakers(6,"Stan Smith","Nike","Tennis", 8.0f,10,80.00f);
+ testId.setId(expected);
+ //then
+ Assertions.assertEquals(expected,testId.getId());
+ }
+
+ @Test
+ public void SetBrandTest(){
+ //Given
+ String expected = "Nike";
+ //when
+ Sneakers testBrand = new Sneakers(6,"Stan Smith","Nike","Tennis",8.0f, 10,80.00f);
+ testBrand.setBrand(expected);
+ //then
+ Assertions.assertEquals(expected,testBrand.getBrand());
+ }
+
+ @Test
+ public void SetSportTest(){
+ //Given
+ String expected = "Soccer";
+ //when
+ Sneakers testSport = new Sneakers(6,"Stan Smith","Nike","Tennis", 8.0f, 10,80.00f);
+ testSport.setSport(expected);
+ //then
+ Assertions.assertEquals(expected,testSport.getSport());
+ }
+ @Test
+ public void SetSizeTest(){
+ //Given
+ int expected = 9;
+ //when
+ Sneakers testSize = new Sneakers(6,"Stan Smith","Nike","Tennis", 8.0f,10,80.00f);
+ testSize.setSize(expected);
+ //then
+ Assertions.assertEquals(expected,testSize.getSize());
+ }
+ @Test
+ public void SetQuantityTest(){
+ //Given
+ int expected = 2;
+ //when
+ Sneakers testQnty = new Sneakers(6,"Stan Smith","Nike","Tennis", 8.0f, 10,80.00f);
+ testQnty.setQuantity(expected);
+ //then
+ Assertions.assertEquals(expected,testQnty.getQuantity());
+ }
+
+ @Test
+ public void SetPriceTest(){
+ //Given
+ int expected = 200;
+ //when
+ Sneakers testPrice = new Sneakers(6,"Stan Smith","Nike","Tennis", 8.0f, 10,80.00f);
+ testPrice.setPrice(expected);
+ //then
+ Assertions.assertEquals(expected,testPrice.getPrice());
+ }
+
+}
diff --git a/src/test/java/Models/WhiskeyTest.java b/src/test/java/Models/WhiskeyTest.java
new file mode 100644
index 0000000..bc98766
--- /dev/null
+++ b/src/test/java/Models/WhiskeyTest.java
@@ -0,0 +1,62 @@
+package Models;
+
+import Utils.CSVUtils;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class WhiskeyTest {
+
+ @Test
+ public void TestConstructor(){
+ int expectedId = 1;
+ String expectedBrand = "Crown Royal Canadian";
+ int expectedQuantity = 10;
+ float expectedPrice = 580.00f;
+
+ Whiskey testWhiskey = new Whiskey(expectedId, expectedBrand, expectedQuantity,expectedPrice);
+ Assertions.assertEquals(expectedId, testWhiskey.getId());
+ Assertions.assertEquals(expectedBrand, testWhiskey.getBrand());
+ Assertions.assertEquals(expectedQuantity, testWhiskey.getQuantity());
+ Assertions.assertEquals(expectedPrice, testWhiskey.getPrice());
+
+ }
+ @Test
+ public void SetBrandTest(){
+ //Given
+ String expected = "Crown Royal Canadian";
+ //when
+ Whiskey testBrand = new Whiskey(1,"Crown Royal Canadian",0,0);
+ testBrand.setBrand(expected);
+ //then
+ Assertions.assertEquals(expected,testBrand.getBrand());
+ }
+
+ @Test
+ public void SetQuantityTest(){
+ //Given
+ int expected = 2;
+ //when
+ Whiskey testQnty = new Whiskey(1,"Crown Royal Canadian",20,0);
+ testQnty.setQuantity(expected);
+ //then
+ Assertions.assertEquals(expected,testQnty.getQuantity());
+ }
+ @Test
+ public void SetPriceTest(){
+ //Given
+ int expected = 200;
+ //when
+ Whiskey testPrice = new Whiskey(1,"Crown Royal Canadian",0,580.00f);
+ testPrice.setPrice(expected);
+ //then
+ Assertions.assertEquals(expected,testPrice.getPrice());
+ }
+
+
+}
diff --git a/src/test/java/Services/SneakerServiceTest.java b/src/test/java/Services/SneakerServiceTest.java
new file mode 100644
index 0000000..5a0544f
--- /dev/null
+++ b/src/test/java/Services/SneakerServiceTest.java
@@ -0,0 +1,38 @@
+package Services;
+
+import Models.Sneakers;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class SneakerServiceTest {
+
+ @Test
+ public void ServiceTest(){
+ String expectedName = "Stan Smith";
+ String expectedBrand = "Adidas";
+ String expectedSport = "Tennis";
+ float expectedSize = 10.5f;
+ int expectedQuantity = 10;
+ float expectedPrice = 80.00f;
+
+ SneakersService sneakerService = new SneakersService();
+ Sneakers testSneakers = sneakerService.create(expectedName, expectedBrand,
+ expectedSport, expectedSize, expectedQuantity, expectedPrice);
+
+ int actualId = testSneakers.getId();
+ String actualName = testSneakers.getName();
+ String actualBrand = testSneakers.getBrand();
+ String actualSport = testSneakers.getSport();
+ float actualSize = testSneakers.getSize();
+ int actualQty = testSneakers.getQuantity();
+ float actualPrice = testSneakers.getPrice();
+
+ Assertions.assertEquals(Integer.class.getName(), new Integer(actualId).getClass().getName());
+ Assertions.assertEquals(expectedName, actualName);
+ Assertions.assertEquals(expectedBrand, actualBrand);
+ Assertions.assertEquals(expectedSport, actualSport);
+ Assertions.assertEquals(expectedSize, actualSize);
+ Assertions.assertEquals(expectedQuantity, actualQty);
+ Assertions.assertEquals(expectedPrice, actualPrice);
+ }
+}
diff --git a/src/test/java/Services/WhiskeyServiceTest.java b/src/test/java/Services/WhiskeyServiceTest.java
new file mode 100644
index 0000000..9281cb6
--- /dev/null
+++ b/src/test/java/Services/WhiskeyServiceTest.java
@@ -0,0 +1,30 @@
+package Services;
+
+import Models.Sneakers;
+import Models.Whiskey;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class WhiskeyServiceTest {
+
+ @Test
+ public void ServiceTest(){
+ String expectedBrand = "Adidas";
+ int expectedQuantity = 10;
+ float expectedPrice = 580.00f;
+
+ WhiskeyService whiskeyService = new WhiskeyService();
+ Whiskey testWhiskey = whiskeyService.create(expectedBrand, expectedQuantity, expectedPrice);
+
+
+ int actualId = testWhiskey.getId();
+ String actualBrand = testWhiskey.getBrand();
+ int actualQty = testWhiskey.getQuantity();
+ float actualPrice = testWhiskey.getPrice();
+
+ Assertions.assertEquals(Integer.class.getName(), new Integer(actualId).getClass().getName());
+ Assertions.assertEquals(expectedBrand, actualBrand);
+ Assertions.assertEquals(expectedQuantity, actualQty);
+ Assertions.assertEquals(expectedPrice, actualPrice);
+ }
+}