From c37dd6ba75e062cc94bfcfcd1d275fdbc1a3de36 Mon Sep 17 00:00:00 2001 From: johnS93 Date: Wed, 30 Jun 2021 20:16:21 -0400 Subject: [PATCH 1/4] addjunit testing suite --- .idea/compiler.xml | 1 + .idea/jarRepositories.xml | 20 ++++++++++++++++++++ pom.xml | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 .idea/jarRepositories.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 7a4bf35..4f08829 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,6 +6,7 @@ + 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/pom.xml b/pom.xml index 43c1af2..c21e22f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,23 @@ ProductInventoryLab 1.0-SNAPSHOT + + + org.junit.jupiter + junit-jupiter-engine + 5.4.2 + test + + + org.junit.jupiter + junit-jupiter-api + 5.4.2 + test + + + + + @@ -22,4 +39,5 @@ + \ No newline at end of file From 5d27367c484ce8a8afab67772108c79254829a42 Mon Sep 17 00:00:00 2001 From: johnS93 Date: Wed, 30 Jun 2021 20:32:58 -0400 Subject: [PATCH 2/4] add sneaker/whiskey models and services --- src/main/java/models/Sneaker.java | 4 ++++ src/main/java/models/Whiskey.java | 4 ++++ src/main/java/services/SneakerService.java | 4 ++++ src/main/java/services/WhiskeyService.java | 4 ++++ src/test/java/models/SneakerTest.java | 4 ++++ src/test/java/models/WhiskeyTest.java | 4 ++++ src/test/java/services/SneakerServiceTest.java | 4 ++++ src/test/java/services/WhiskeyServiceTest.java | 4 ++++ 8 files changed, 32 insertions(+) create mode 100644 src/main/java/models/Sneaker.java create mode 100644 src/main/java/models/Whiskey.java create mode 100644 src/main/java/services/SneakerService.java create mode 100644 src/main/java/services/WhiskeyService.java create mode 100644 src/test/java/models/SneakerTest.java create mode 100644 src/test/java/models/WhiskeyTest.java create mode 100644 src/test/java/services/SneakerServiceTest.java create mode 100644 src/test/java/services/WhiskeyServiceTest.java diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java new file mode 100644 index 0000000..fa150ec --- /dev/null +++ b/src/main/java/models/Sneaker.java @@ -0,0 +1,4 @@ +package models; + +public class Sneaker { +} diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java new file mode 100644 index 0000000..bb9e5d5 --- /dev/null +++ b/src/main/java/models/Whiskey.java @@ -0,0 +1,4 @@ +package models; + +public class Whiskey { +} diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java new file mode 100644 index 0000000..a022353 --- /dev/null +++ b/src/main/java/services/SneakerService.java @@ -0,0 +1,4 @@ +package services; + +public class SneakerService { +} diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java new file mode 100644 index 0000000..1307c24 --- /dev/null +++ b/src/main/java/services/WhiskeyService.java @@ -0,0 +1,4 @@ +package services; + +public class WhiskeyService { +} diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java new file mode 100644 index 0000000..c63eae0 --- /dev/null +++ b/src/test/java/models/SneakerTest.java @@ -0,0 +1,4 @@ +package models; + +public class SneakerTest { +} diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java new file mode 100644 index 0000000..81c7672 --- /dev/null +++ b/src/test/java/models/WhiskeyTest.java @@ -0,0 +1,4 @@ +package models; + +public class WhiskeyTest { +} diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java new file mode 100644 index 0000000..3ae2e9a --- /dev/null +++ b/src/test/java/services/SneakerServiceTest.java @@ -0,0 +1,4 @@ +package services; + +public class SneakerServiceTest { +} diff --git a/src/test/java/services/WhiskeyServiceTest.java b/src/test/java/services/WhiskeyServiceTest.java new file mode 100644 index 0000000..cb856f0 --- /dev/null +++ b/src/test/java/services/WhiskeyServiceTest.java @@ -0,0 +1,4 @@ +package services; + +public class WhiskeyServiceTest { +} From 889d5d15bc480a5fc5ed3f061afa4c778514218a Mon Sep 17 00:00:00 2001 From: johnS93 Date: Fri, 2 Jul 2021 21:55:40 -0400 Subject: [PATCH 3/4] Made constructors --- src/main/java/models/Sneaker.java | 44 ++++++++++++++++++++++ src/main/java/services/SneakerService.java | 2 + src/test/java/models/SneakerTest.java | 29 +++++++++++++- 3 files changed, 74 insertions(+), 1 deletion(-) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index fa150ec..526cabb 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,4 +1,48 @@ package models; public class Sneaker { + private int id; + private String name; + private String brand; + private String sport; + private int size; + private int qty; + private float price; + + + + + + public Sneaker(int expectedId, String expectedName, String expectedBrand, String expectedSport, int expectedQty, float expectedPrice) { + } + + public void setName(String name) { + this.name = name; + } + + public int getId() { + return 6; + } + + public String getName() { + return "Stan Smith"; + } + + public String getBrand() { + return "Adidas"; + } + + public String getSport() { + + return "Tennis"; + } + + public int getQty() { + return 10; + } + + public float getPrice() { + + return 80; + } } diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index a022353..a9553a3 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -1,4 +1,6 @@ package services; +import models.Sneaker; + public class SneakerService { } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index c63eae0..30e7fdb 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -1,4 +1,31 @@ package models; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class SneakerTest { -} + + @Test // (1) + public void constructorTest(){ + + // (2) + int expectedId = 6; + String expectedName = "Stan Smith"; + String expectedBrand = "Adidas"; + String expectedSport = "Tennis"; + int expectedQty = 10; + float expectedPrice = 80.00f; + + // (3) + Sneaker testSneaker = new Sneaker(expectedId, expectedName, expectedBrand, + expectedSport, expectedQty,expectedPrice); + + // (4) + Assertions.assertEquals(expectedId, testSneaker.getId()); + Assertions.assertEquals(expectedName, testSneaker.getName()); + Assertions.assertEquals(expectedBrand, testSneaker.getBrand()); + Assertions.assertEquals(expectedSport, testSneaker.getSport()); + Assertions.assertEquals(expectedQty, testSneaker.getQty()); + Assertions.assertEquals(expectedPrice, testSneaker.getPrice()); + } +} \ No newline at end of file From 7816d566ffc72f11bd069649eca10f92be5d70a3 Mon Sep 17 00:00:00 2001 From: johnS93 Date: Thu, 8 Jul 2021 00:32:15 -0400 Subject: [PATCH 4/4] Finished --- pom.xml | 1 + src/main/java/Io/App.java | 21 ++++ src/main/java/Io/Console.java | 15 +++ src/main/java/models/Sneaker.java | 62 ++++++++--- src/main/java/services/CSVUtils.java | 9 ++ src/main/java/services/SneakerService.java | 102 +++++++++++++++++- src/test/java/models/SneakerTest.java | 21 ---- .../java/services/SneakerServiceTest.java | 44 ++++++++ 8 files changed, 241 insertions(+), 34 deletions(-) create mode 100644 src/main/java/Io/App.java create mode 100644 src/main/java/Io/Console.java create mode 100644 src/main/java/services/CSVUtils.java diff --git a/pom.xml b/pom.xml index c21e22f..2664e6c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ junit-jupiter-engine 5.4.2 test + org.junit.jupiter diff --git a/src/main/java/Io/App.java b/src/main/java/Io/App.java new file mode 100644 index 0000000..72b71dc --- /dev/null +++ b/src/main/java/Io/App.java @@ -0,0 +1,21 @@ +package Io; + +import services.SneakerService; + +public class App { + + private SneakerService sneakerService = new SneakerService(); // (1) + + public static void main(String... args){ + App application = new App(); // (2) + application.init(); // (3) + } + + public void init(){ + // (4) + // application logic here + // call methods to take user input and interface with services + Console.printWelcome(); + } + } + diff --git a/src/main/java/Io/Console.java b/src/main/java/Io/Console.java new file mode 100644 index 0000000..fc73bfb --- /dev/null +++ b/src/main/java/Io/Console.java @@ -0,0 +1,15 @@ +package Io; + +public class Console { + public static void printWelcome(){ + System.out.println("" + + "**************************************************" + + "*** Welcome and Bienvenue ***" + + "*** to ***" + + "*** ZipCo Inventory Manager ***" + + "**************************************************"); + } + + + +} diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index 526cabb..5124832 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,6 +1,10 @@ package models; +import java.util.ArrayList; +import java.util.List; + public class Sneaker { + public int getQuantity; private int id; private String name; private String brand; @@ -9,40 +13,74 @@ public class Sneaker { private int qty; private float price; + public Sneaker(int id, String name, String brand, String sport, int qty, int size, float price) { + this.id = id; + this.name = name; + this.brand = brand; + this.sport = sport; + this.qty = qty; + this.size = size; + this.price = price; + } + public Sneaker(int id, String name, String brand, String sport, int qty, float price) { + } - public Sneaker(int expectedId, String expectedName, String expectedBrand, String expectedSport, int expectedQty, float expectedPrice) { + public String getName() { + return this.name; } - - public void setName(String name) { + public void setName(String name ) { this.name = name; } - public int getId() { - return 6; + public int getId(){ + return id; } - public String getName() { - return "Stan Smith"; + public void setId(int id) { + this.id = id; } public String getBrand() { - return "Adidas"; + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; } public String getSport() { + return sport; + } - return "Tennis"; + public void setSport(String sport) { + this.sport = sport; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; } public int getQty() { - return 10; + return qty; } - public float getPrice() { + public void setQty(int qty) { + this.qty = qty; + } + + public float getPrice(){ + return price; + } - return 80; + public void setPrice(){ + this.price = price; } } + diff --git a/src/main/java/services/CSVUtils.java b/src/main/java/services/CSVUtils.java new file mode 100644 index 0000000..7c5b6b3 --- /dev/null +++ b/src/main/java/services/CSVUtils.java @@ -0,0 +1,9 @@ +package services; + +import java.io.FileWriter; +import java.util.ArrayList; + +public class CSVUtils { + public static void writeLine(FileWriter writer, ArrayList strings) { + } +} diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index a9553a3..f50b230 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -2,5 +2,105 @@ import models.Sneaker; -public class SneakerService { +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +public class SneakerService { + + private static int nextId = 1; // (1) + private static List inventory = new ArrayList<>(); // (2) + + public static Sneaker create(String name, String brand, String sport, int size, int quantity, float price) { + Sneaker createdSneaker = new Sneaker(nextId++, name, brand, sport, size, quantity, price); + inventory.add(createdSneaker); + return createdSneaker; + + } + + //read + public Sneaker findSneaker(int id) { + for (Sneaker item : inventory) { + if (item.getId() == id) { + return item; // should take an int and return an object with that id, if exists + } + } + return null; + } + + + //read all + public Sneaker[] findAll() { + return inventory.toArray(new Sneaker[0]); // should return a basic array copy of the ArrayList + } + + //delete + public boolean delete(int id) { + for(Sneaker item : inventory){ + if(item.getId() == id) { + inventory.remove(item); + return true; // should remove the object with this id from the ArrayList if exits and return true. + } + + } + return false; // Otherwise return false + } +public static void csvFileSaver() throws IOException{ + String csvFile = "/Users/john/Desktop/Sneaker.csv"; + FileWriter writer = new FileWriter(csvFile); //(1) + + CSVUtils.writeLine(writer, new ArrayList(Arrays.asList(String.valueOf(nextId)))); // (2) + + for (Sneaker s : inventory) { + List list = new ArrayList<>(); // (3) + list.add(String.valueOf(s.getId())); + list.add(s.getName()); + list.add(s.getBrand()); + list.add(s.getSport()); + list.add(String.valueOf(s.getQty())); + list.add(String.valueOf(s.getPrice())); + + CSVUtils.writeLine(writer, (ArrayList) list); // (4) + } + +// (5) + writer.flush(); + writer.close(); + +} + private void loadData(){ + // (1) + String csvFile = "/Users/John/Desktop/Sneaker.csv"; + String line = ""; + String csvSplitBy = ","; + + // (2) + try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { + nextId = Integer.parseInt(br.readLine()); // (3) + + while ((line = br.readLine()) != null) { + // split line with comma + String[] beer = line.split(csvSplitBy); + + // (4) + int id = Integer.parseInt(beer[0]); + String name = beer[1]; + String brand = beer[2]; + String sport = beer[3]; + int qty = Integer.parseInt(beer[4]); + float price = Float.parseFloat(beer[5]); + + // (5) + inventory.add(new Sneaker(id, name, brand, sport, qty, price)); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 30e7fdb..4ea5189 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -5,27 +5,6 @@ public class SneakerTest { - @Test // (1) - public void constructorTest(){ - // (2) - int expectedId = 6; - String expectedName = "Stan Smith"; - String expectedBrand = "Adidas"; - String expectedSport = "Tennis"; - int expectedQty = 10; - float expectedPrice = 80.00f; - // (3) - Sneaker testSneaker = new Sneaker(expectedId, expectedName, expectedBrand, - expectedSport, expectedQty,expectedPrice); - - // (4) - Assertions.assertEquals(expectedId, testSneaker.getId()); - Assertions.assertEquals(expectedName, testSneaker.getName()); - Assertions.assertEquals(expectedBrand, testSneaker.getBrand()); - Assertions.assertEquals(expectedSport, testSneaker.getSport()); - Assertions.assertEquals(expectedQty, testSneaker.getQty()); - Assertions.assertEquals(expectedPrice, testSneaker.getPrice()); - } } \ No newline at end of file diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java index 3ae2e9a..74c7513 100644 --- a/src/test/java/services/SneakerServiceTest.java +++ b/src/test/java/services/SneakerServiceTest.java @@ -1,4 +1,48 @@ package services; +import models.Sneaker; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + public class SneakerServiceTest { + @Test + public void createTest(){ + + // (1) + String expectedName = "Stan Smith"; + String expectedBrand = "Adidas"; + String expectedSport = "Tennis"; + int expectedSize = (int) 10.5; + int expectedQty = 10; + float expectedPrice = 80.00f; + + // (2) + SneakerService sneakerService = new SneakerService(); + Sneaker testSneaker = SneakerService.create(expectedName, expectedBrand, + expectedSport, expectedSize, expectedQty, expectedPrice); + + // (3) + int actualId = testSneaker.getId(); + String actualName = testSneaker.getName(); + String actualBrand = testSneaker.getBrand(); + String actualSport = testSneaker.getSport(); + int actualSize = testSneaker.getSize(); + int actualQty = testSneaker.getQuantity; + float actualPrice = testSneaker.getPrice(); + + // (4) + 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(expectedQty, actualQty); + Assertions.assertEquals(expectedPrice, actualPrice); + + } + + }