From 58cfbeb467b16088b48aff0e6d3b7da27913eb2a Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Fri, 4 Aug 2023 16:13:57 -0400 Subject: [PATCH 1/6] add depency --- pom.xml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 From 7f68c17014771258743a2e737851a28c61da6510 Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Fri, 4 Aug 2023 16:23:57 -0400 Subject: [PATCH 2/6] created a classes --- 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 | 7 +++++++ src/test/java/models/WhiskeyTest.java | 7 +++++++ src/test/java/services/SneakerServiceTest.java | 7 +++++++ src/test/java/services/WhiskeyServiceTest.java | 7 +++++++ 8 files changed, 44 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..30ccb7a --- /dev/null +++ b/src/test/java/models/SneakerTest.java @@ -0,0 +1,7 @@ +package models; + +import static org.junit.jupiter.api.Assertions.*; + +class SneakerTest { + +} \ 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..ab32d3f --- /dev/null +++ b/src/test/java/models/WhiskeyTest.java @@ -0,0 +1,7 @@ +package models; + +import static org.junit.jupiter.api.Assertions.*; + +class WhiskeyTest { + +} \ 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..d2e0e6d --- /dev/null +++ b/src/test/java/services/SneakerServiceTest.java @@ -0,0 +1,7 @@ +package services; + +import static org.junit.jupiter.api.Assertions.*; + +class SneakerServiceTest { + +} \ 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..4e900f1 --- /dev/null +++ b/src/test/java/services/WhiskeyServiceTest.java @@ -0,0 +1,7 @@ +package services; + +import static org.junit.jupiter.api.Assertions.*; + +class WhiskeyServiceTest { + +} \ No newline at end of file From 4deed8152c1a4c17f121c1363ce2a535ceda905c Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Fri, 4 Aug 2023 17:02:19 -0400 Subject: [PATCH 3/6] add tests --- .idea/jarRepositories.xml | 20 +++++ src/main/java/models/Sneaker.java | 76 ++++++++++++++++ src/test/java/models/SneakerTest.java | 90 ++++++++++++++++++- .../java/services/SneakerServiceTest.java | 51 +++++++++-- 4 files changed, 229 insertions(+), 8 deletions(-) create mode 100644 .idea/jarRepositories.xml 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/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index fa150ec..ef73c6d 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,4 +1,80 @@ package models; public class Sneaker { + private int id; + private String name; + private String brand; + private String sport; + private double size; + private int qty; + private float price; + + public Sneaker () { + + } + public Sneaker (int id,String name,String brand,String sport,double size, int qty,float price) { + this.id = id; + this.name = name; + this.brand = brand; + this.sport = sport; + this.size = size; + this.qty = qty; + this.price = price; + } + // Sneaker sweetAdidas = new Sneaker(6, "Stan Smith", "Adidas", "Tennis", 10.5f, 10, 80.00f) + public int getId() { + return id; + } + + public void setId(int 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 int getQty() { + return qty; + } + + public void setQty(int qty) { + this.qty = qty; + } + + public float getPrice() { + return price; + } + + public void setPrice(float price) { + this.price = price; + } } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 30ccb7a..e225d28 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -1,7 +1,95 @@ package models; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; class SneakerTest { + + @Test + public void setNameTest() { + // given (1) + String expected = "OZWEEGO"; + + // when (2) + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + testSneaker.setName(expected); + + // then (3) + Assertions.assertEquals(expected, testSneaker.getName()); + } + + + @Test + void setId() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + int expected = 2; + testSneaker.setId(expected); + Assertions.assertEquals(expected,testSneaker.getId()); + + + } + + @Test + void setName() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + String expected = "name"; + testSneaker.setName(expected); + Assertions.assertEquals(expected,testSneaker.getName()); + } + + @Test + void setBrand() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + String expected = "Nike"; + testSneaker.setBrand(expected); + Assertions.assertEquals(expected,testSneaker.getBrand()); + } + + @Test + void setSize() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + double expected = 11.5; + testSneaker.setSize(expected); + Assertions.assertEquals(expected,testSneaker.getSize()); + + } + + @Test + void setQty() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + int expected = 22; + testSneaker.setQty(expected); + Assertions.assertEquals(expected,testSneaker.getQty()); + } + + @Test + void setPrice() { + Sneaker testSneaker = new Sneaker( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + float expected = 90.00f; + testSneaker.setPrice(expected); + Assertions.assertEquals(expected,testSneaker.getPrice()); + } + + @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( 6, "Stan Smith", "Adidas", "Tennis", 10.5, 10, 80.00f); + + // (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 d2e0e6d..fa9b72e 100644 --- a/src/test/java/services/SneakerServiceTest.java +++ b/src/test/java/services/SneakerServiceTest.java @@ -1,7 +1,44 @@ -package services; - -import static org.junit.jupiter.api.Assertions.*; - -class SneakerServiceTest { - -} \ No newline at end of file +//package services; +// +//import models.Sneaker; +//import org.junit.jupiter.api.Assertions; +//import org.junit.jupiter.api.Test; +// +//public class SneakerServiceTest { +// @Test +// public void createTest(){ +// +// // (1) +// String expectedName = "Stan Smith"; +// String expectedBrand = "Adidas"; +// String expectedSport = "Tennis"; +// double expectedSize = 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); +// +// } +//} \ No newline at end of file From fa0f385dbb9d090bfd8ef909c4ecccc2613d743b Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Fri, 4 Aug 2023 18:59:38 -0400 Subject: [PATCH 4/6] done --- src/main/java/models/Sneaker.java | 8 +- src/main/java/services/SneakerService.java | 46 ++++++ src/main/java/services/WhiskeyService.java | 16 ++ .../java/services/SneakerServiceTest.java | 142 ++++++++++++------ 4 files changed, 166 insertions(+), 46 deletions(-) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index ef73c6d..050fbd0 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -9,8 +9,8 @@ public class Sneaker { private int qty; private float price; - public Sneaker () { - + public Sneaker(){ + this(0,null,null,null,0,0,0); } public Sneaker (int id,String name,String brand,String sport,double size, int qty,float price) { this.id = id; @@ -77,4 +77,8 @@ public float getPrice() { public void setPrice(float price) { this.price = price; } + + public int getQuantity() { + return this.qty; + } } diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index a022353..c11d052 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -1,4 +1,50 @@ package services; +import models.Sneaker; + +import java.util.ArrayList; + public class SneakerService { + private static int nextID = 1; + private ArrayList inventory = new ArrayList<>(); + + + public Sneaker create(String expectedName, String expectedBrand, String expectedSport, double expectedSize, int expectedQty, float expectedPrice) { + Sneaker sneaker = new Sneaker(nextID++,expectedName, expectedBrand, expectedSport, expectedSize, expectedQty, expectedPrice); + this.inventory.add(sneaker); + return sneaker; + } + + public Sneaker findSneaker(int i) { + for (Sneaker s :inventory) { + if (s.getId() == i ) { + return s; + } + } + return null; + } + + 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 (int i = 0 ; i < inventory.size() ; i++) { + if (inventory.get(i).getId() == id) { + inventory.remove(i); + } + return true;} + + // should remove the object with this id from the ArrayList if exits and return true. + // Otherwise return false + return false; + } + + public void clear () { + inventory.clear(); + } + } diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java index 1307c24..bf0864a 100644 --- a/src/main/java/services/WhiskeyService.java +++ b/src/main/java/services/WhiskeyService.java @@ -1,4 +1,20 @@ package services; public class WhiskeyService { + private int id; + private String name; + private String brand; + private int qty; + private float price; + + public WhiskeyService(){ + this(0,null,null,0,0); + } + public WhiskeyService (int id,String name,String brand, int qty,float price) { + this.id = id; + this.name = name; + this.brand = brand; + this.qty = qty; + this.price = price; + } } diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java index fa9b72e..54aceb7 100644 --- a/src/test/java/services/SneakerServiceTest.java +++ b/src/test/java/services/SneakerServiceTest.java @@ -1,44 +1,98 @@ -//package services; -// -//import models.Sneaker; -//import org.junit.jupiter.api.Assertions; -//import org.junit.jupiter.api.Test; -// -//public class SneakerServiceTest { -// @Test -// public void createTest(){ -// -// // (1) -// String expectedName = "Stan Smith"; -// String expectedBrand = "Adidas"; -// String expectedSport = "Tennis"; -// double expectedSize = 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); -// -// } -//} \ No newline at end of file +package services; + +import models.Sneaker; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestTemplate; + +public class SneakerServiceTest { + + SneakerService sneakerService = new SneakerService(); + + @Test + public void createTest() { + + // (1) + String expectedName = "Stan Smith"; + String expectedBrand = "Adidas"; + String expectedSport = "Tennis"; + double expectedSize = 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(); + double 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); + sneakerService.clear(); + + } + + @Test + public void testFind() { + + // (1) + String expectedName = "Stan Smith"; + String expectedBrand = "Adidas"; + String expectedSport = "Tennis"; + double expectedSize = 10.5; + + int expectedQty = 10; + float expectedPrice = 80.00f; + + // (2) + SneakerService sneakerService = new SneakerService(); + Sneaker expected = sneakerService.create(expectedName, expectedBrand, + expectedSport, expectedSize, expectedQty, expectedPrice); + + // (3) + Sneaker actual = sneakerService.findSneaker(1); + // actual = sneakerService.findSneaker(0); + Assertions.assertEquals(expected, actual); + sneakerService.clear(); + + } + @Test + public void testDelete() { + SneakerService s = new SneakerService(); + Sneaker s1 = s.create("Stan Smith", "Adidas", "Tennis", 10.5,10, 80.00f ); + Sneaker s2 = s.create( "NOTStan Smith", "NOTAdidas", "NOTTennis", 5.5,133, 55.00f ); + boolean expectedDelete = true; + boolean actual = s.delete(1); + int expectint = 1; + Assertions.assertEquals(expectedDelete,actual); + s.clear(); + } + + @Test + public void testDelete2() { + SneakerService ss = new SneakerService(); + Sneaker s1 = ss.create("Stan Smith", "Adidas", "Tennis", 10.5,10, 80.00f ); + Sneaker s2 = ss.create( "NOTStan Smith", "NOTAdidas", "NOTTennis", 5.5,133, 55.00f ); + ss.delete(s1.getId()); + //boolean expectedDelete = true; + //boolean actual = s.delete(1); + int expectint = 1; + Assertions.assertEquals(expectint,ss.findAll().length); + ss.clear(); + } +} \ No newline at end of file From 1c8d585ea0e805dad7d2f1d9a6d0fbc10a58b0a2 Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Sun, 13 Aug 2023 14:10:47 -0400 Subject: [PATCH 5/6] add console and app classes . --- src/main/java/App.java | 162 +++++++++++++++++++++ src/main/java/Console.java | 38 +++++ src/main/java/services/SneakerService.java | 27 ++-- 3 files changed, 216 insertions(+), 11 deletions(-) create mode 100644 src/main/java/App.java create mode 100644 src/main/java/Console.java diff --git a/src/main/java/App.java b/src/main/java/App.java new file mode 100644 index 0000000..17107ac --- /dev/null +++ b/src/main/java/App.java @@ -0,0 +1,162 @@ +import models.Sneaker; +import services.SneakerService; + +import java.util.Date; +import java.util.Scanner; + +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(); + runMainMenu(); + } + + public void runMainMenu() { + boolean running = true; + Scanner scanner = new Scanner(System.in); + + while (running) { + Console.printMainMenu(); + int choice = scanner.nextInt(); + scanner.nextLine(); // Consume newline + + switch (choice) { + case 1: + addNewItem(); + // Create product + // Implement the logic to create a product and add it to inventory + break; + case 2: + readExistingProducts(); + // Read existing products + // Implement the logic to read and display existing products + break; + case 3: + updateItem(); + // Update product + // Implement the logic to update a product's details + break; + case 4: + deleteItem(); + // Delete product + // Implement the logic to delete a product from inventory + break; + case 5: + getInventoryReport(); + // Get reports about products + // Implement the logic to generate and display reports + break; + case 6: + System.out.println("Do you want to quit?\n" + + "if Yes - type [y]\n" + + "if No - type [n]"); + String quit = scanner.nextLine(); + if (quit.equalsIgnoreCase("y")) { + running = false; + }if (quit.equalsIgnoreCase("n")){ + return; + } + break; + default: + System.out.println("Invalid choice. Please select a valid option."); + } + } + + System.out.println("Exiting the program. Goodbye!"); + scanner.close(); + } + + public void addNewItem() { + Scanner scanner = new Scanner(System.in); + System.out.println("Please give a name of this product"); + String name = scanner.nextLine(); + System.out.println("Please give the brand of this product"); + String brand = scanner.nextLine(); + System.out.println("Please tell what sport"); + String sport = scanner.nextLine(); + System.out.println("Please give a size"); + double size = scanner.nextDouble(); + System.out.println("Please give a qty ot this items"); + int qty = scanner.nextInt(); + System.out.println("Please give a price"); + float price = scanner.nextFloat(); + sneakerService.create(name, brand, sport, size, qty, price); + System.out.println("We add new itm to inventory"); + } + + public void updateItem() { + Scanner scanner = new Scanner(System.in); + System.out.println("If you want to update some item press [1] , return press [2]"); + int answer1 = scanner.nextInt(); + System.out.println("What is the ID of the item that you want to update ?"); + int itemID = scanner.nextInt(); + if (answer1 == 1) { + Sneaker temp = sneakerService.findSneaker(itemID); + + System.out.println("Set new price price press [1] \n" + + "Set new Qty press [2] \n"); + int choise = scanner.nextInt(); + + if (choise == 1) { + System.out.println("What is new price?"); + float newPrice = scanner.nextFloat(); + temp.setPrice(newPrice); + } + if (choise == 2) { + System.out.println("What is new Qty?"); + int newQty = scanner.nextInt(); + temp.setQty(newQty); + } else { + return; + } + + } + } + + public void getInventoryReport () { + Scanner scanner = new Scanner(System.in); + System.out.println("If you want to see the list of all items press [1] , return press [2]"); + int answer = scanner.nextInt(); + if (answer == 1) { + sneakerService.getInvetoryReport(); + } else { + return; + } + } + public void deleteItem () { + Scanner scanner = new Scanner(System.in); + System.out.println("What item do you want to delete ? \n" + + "Please provide the item ID "); + int answer = scanner.nextInt(); + for (Sneaker itemToDelete : sneakerService.findAll()) { + if (itemToDelete.getId() == answer) { + sneakerService.delete(itemToDelete.getId()); + System.out.println("The item was succsefully removed"); + } + else { + System.out.println("We dont have this ID number in our inventory list"); + } + } + } + + public void readExistingProducts () { + for (Sneaker s : sneakerService.findAll()){ + + System.out.println(s.getName()); + } + } + +} + + + diff --git a/src/main/java/Console.java b/src/main/java/Console.java new file mode 100644 index 0000000..91765b0 --- /dev/null +++ b/src/main/java/Console.java @@ -0,0 +1,38 @@ +import services.SneakerService; + +import java.util.Scanner; +//package io; + + +public class Console extends SneakerService { + + public static void printWelcome() { + System.out.println("" + + "*****************************************************"+"\n"+ + "*** Welcome and Bienvenue ***"+"\n"+ + "*** to ***"+"\n"+ + "*** ZipCo Inventory Manager ***"+"\n"+ + "*****************************************************"); + } + + + public static void printMainMenu() { + System.out.println(""+ + "*****************************************************"+"\n"+ + "*** Press number to make choice ***"+"\n"+ + "*** [1] Create a new product ***"+"\n"+ + "*** [2] Read existing products ***"+"\n"+ + "*** [3] Update product ***"+"\n"+ + "*** [4] Delete product ***"+"\n"+ + "*** [5] Get reports about products ***"+"\n"+ + "*** [6] Exit the program ***"+"\n"+ + "*****************************************************" + + ); + } + + public static void createAProduct(){ + + } + +} diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index c11d052..c474601 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -4,20 +4,20 @@ import java.util.ArrayList; -public class SneakerService { +public class SneakerService extends Sneaker{ private static int nextID = 1; private ArrayList inventory = new ArrayList<>(); public Sneaker create(String expectedName, String expectedBrand, String expectedSport, double expectedSize, int expectedQty, float expectedPrice) { - Sneaker sneaker = new Sneaker(nextID++,expectedName, expectedBrand, expectedSport, expectedSize, expectedQty, expectedPrice); + Sneaker sneaker = new Sneaker(nextID++, expectedName, expectedBrand, expectedSport, expectedSize, expectedQty, expectedPrice); this.inventory.add(sneaker); return sneaker; } public Sneaker findSneaker(int i) { - for (Sneaker s :inventory) { - if (s.getId() == i ) { + for (Sneaker s : inventory) { + if (s.getId() == i) { return s; } } @@ -26,24 +26,29 @@ public Sneaker findSneaker(int i) { public Sneaker[] findAll() { - return inventory.toArray(new Sneaker[0]); + return inventory.toArray(new Sneaker[0]); // should return a basic array copy of the ArrayList } //delete public boolean delete(int id) { - for (int i = 0 ; i < inventory.size() ; i++) { + for (int i = 0; i < inventory.size(); i++) { if (inventory.get(i).getId() == id) { - inventory.remove(i); + inventory.remove(i); + } + return true; } - return true;} - // should remove the object with this id from the ArrayList if exits and return true. - // Otherwise return false return false; } - public void clear () { + public void getInvetoryReport () { + for (Sneaker s : inventory) { + System.out.println("Id: " + s.getId() +"\n" + "Name: " + s.getName()+"\n" + "Qty: " + s.getQty() ); + } + } + + public void clear() { inventory.clear(); } From 48ab7935a0574196600268c11e3ad56162973b8b Mon Sep 17 00:00:00 2001 From: Dmytro_Romaniv <128440171+dimaromaniv@users.noreply.github.com> Date: Sun, 13 Aug 2023 15:40:44 -0400 Subject: [PATCH 6/6] add CsV , but cant read from that file correctly --- pom.xml | 4 +- src/main/java/App.java | 8 +- src/main/java/CSVUtils.java | 88 ++++++++++++++++++++++ src/main/java/models/Sneaker.java | 2 +- src/main/java/services/SneakerService.java | 4 +- 5 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 src/main/java/CSVUtils.java diff --git a/pom.xml b/pom.xml index b36c574..0592f79 100644 --- a/pom.xml +++ b/pom.xml @@ -15,8 +15,8 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 9 + 9 diff --git a/src/main/java/App.java b/src/main/java/App.java index 17107ac..b7ec4b6 100644 --- a/src/main/java/App.java +++ b/src/main/java/App.java @@ -1,9 +1,13 @@ import models.Sneaker; import services.SneakerService; +import java.util.Arrays; import java.util.Date; import java.util.Scanner; +import static services.SneakerService.inventory; +import static utils.CSVUtils.csvFile; + public class App { private SneakerService sneakerService = new SneakerService(); // (1) @@ -25,11 +29,13 @@ public void runMainMenu() { boolean running = true; Scanner scanner = new Scanner(System.in); + while (running) { Console.printMainMenu(); + utils.CSVUtils.loadData(); + utils.CSVUtils.writeSneakersToCSV(csvFile, inventory); int choice = scanner.nextInt(); scanner.nextLine(); // Consume newline - switch (choice) { case 1: addNewItem(); diff --git a/src/main/java/CSVUtils.java b/src/main/java/CSVUtils.java new file mode 100644 index 0000000..09a158f --- /dev/null +++ b/src/main/java/CSVUtils.java @@ -0,0 +1,88 @@ +package utils; + +import models.Sneaker; +import services.SneakerService; + +import java.io.*; +import java.util.List; + +import static services.SneakerService.inventory; + +public class CSVUtils { + private static final int HEADER_LINE = 1; + + private static final char DEFAULT_SEPARATOR = ','; + public static final String csvFile = "/Users/dima/Projects/Product-Inventory-Lab/Sneaker.csv"; + + 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()); + } + + public static void writeSneakersToCSV(String csvFilePath, List sneakers) { + try (FileWriter writer = new FileWriter(csvFilePath)) { + writeLine(writer, List.of("ID", "Name", "Brand", "Sport", "Size", "Quantity", "Price")); + + for (Sneaker s : sneakers) { + List list = List.of( + String.valueOf(s.getId()), + s.getName(), + s.getBrand(), + s.getSport(), + String.valueOf(s.getSize()), + String.valueOf(s.getQty()), + String.valueOf(s.getPrice()) + ); + + CSVUtils.writeLine(writer, list); + } + writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static void loadData() { + // (1) + // String csvFile = csvFile; + String line = ""; + String csvSplitBy = ","; + + // (2) + + try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { + // Skip the header line + br.readLine(); + + SneakerService sneakerService = new SneakerService(); + 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]; + double size = Double.parseDouble(beer[4]); + int qty = Integer.parseInt(beer[5]); + float price = Float.parseFloat(beer[6]); + + // (5) + sneakerService.create(name, brand, sport, size, qty, price); + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index 050fbd0..5b78595 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -9,7 +9,7 @@ public class Sneaker { private int qty; private float price; - public Sneaker(){ + public Sneaker(int id, String name, String brand, String sport, int qty, float price){ this(0,null,null,null,0,0,0); } public Sneaker (int id,String name,String brand,String sport,double size, int qty,float price) { diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index c474601..8ffff4c 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -4,9 +4,9 @@ import java.util.ArrayList; -public class SneakerService extends Sneaker{ +public class SneakerService { private static int nextID = 1; - private ArrayList inventory = new ArrayList<>(); + public static ArrayList inventory = new ArrayList<>(); public Sneaker create(String expectedName, String expectedBrand, String expectedSport, double expectedSize, int expectedQty, float expectedPrice) {