From 62acdd04faf8a893a554a5f6548b4278f5a50e9a Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 28 Aug 2022 18:07:02 -0400 Subject: [PATCH 01/12] added testing dependency --- .idea/compiler.xml | 1 + .idea/jarRepositories.xml | 20 ++++++++++++++++++++ .idea/misc.xml | 3 +++ pom.xml | 14 ++++++++++++++ 4 files changed, 38 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/.idea/misc.xml b/.idea/misc.xml index 4b661a5..5d540cf 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -11,4 +11,7 @@ + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 43c1af2..c3fbd83 100644 --- a/pom.xml +++ b/pom.xml @@ -21,5 +21,19 @@ + + + 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 357bbf670f8223f45cdfada903044816c47e0079 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 28 Aug 2022 18:30:18 -0400 Subject: [PATCH 02/12] added sneaker and whiskey models and services 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 | 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 42e2af9a9765272119ff294ffb9a6c047404bf86 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 28 Aug 2022 18:41:25 -0400 Subject: [PATCH 03/12] added sneaker model properties --- src/main/java/models/Sneaker.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index fa150ec..eca9329 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,4 +1,12 @@ package models; public class Sneaker { + private Long id; + private String name; + private String brand; + private String color; + private String sport; + private Long size; + private Float price; + private Integer quantity; } From 4b3ac6f2fd22ee02e7b3c84a84378a1d4eaeebb5 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 28 Aug 2022 18:42:52 -0400 Subject: [PATCH 04/12] added whiskey model properties --- src/main/java/models/Whiskey.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java index bb9e5d5..d4e13b8 100644 --- a/src/main/java/models/Whiskey.java +++ b/src/main/java/models/Whiskey.java @@ -1,4 +1,11 @@ package models; public class Whiskey { + private Long id; + private String name; + private String brand; + private String description; + private Long size; + private Float price; + private Integer quantity; } From 51dfde4707cfaa886959498715870c8b204efc70 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 28 Aug 2022 19:34:19 -0400 Subject: [PATCH 05/12] added setters and getters plus tests --- src/main/java/models/Sneaker.java | 66 ++++++++++++++++++++++++++- src/main/java/models/Whiskey.java | 60 +++++++++++++++++++++++- src/test/java/models/SneakerTest.java | 43 +++++++++++++++++ src/test/java/models/WhiskeyTest.java | 37 +++++++++++++++ 4 files changed, 202 insertions(+), 4 deletions(-) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index eca9329..51f9c84 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,12 +1,74 @@ package models; +import java.util.Date; + public class Sneaker { private Long id; private String name; private String brand; private String color; private String sport; - private Long size; - private Float price; + private Double size; + private Double price; private Integer quantity; + + public void setName(String name) { + this.name = name; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public void setColor(String color) { + this.color = color; + } + + public void setSport(String sport) { + this.sport = sport; + } + + public void setSize(Double size) { + this.size = size; + } + + public void setPrice(Double price) { + this.price = price; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getBrand() { + return brand; + } + + public String getColor() { + return color; + } + + public String getSport() { + return sport; + } + + public Double getSize() { + return size; + } + + public Double getPrice() { + return price; + } + + public Integer getQuantity() { + return quantity; + } } diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java index d4e13b8..23a1171 100644 --- a/src/main/java/models/Whiskey.java +++ b/src/main/java/models/Whiskey.java @@ -5,7 +5,63 @@ public class Whiskey { private String name; private String brand; private String description; - private Long size; - private Float price; + private Double size; + private Double price; private Integer quantity; + + public void setId(Long id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public void setDescription(String description) { + this.description = description; + } + + public void setSize(Double size) { + this.size = size; + } + + public void setPrice(Double price) { + this.price = price; + } + + public void setQuantity(Integer quantity) { + this.quantity = quantity; + } + + public Long getId() { + return id; + } + + public String getName() { + return name; + } + + public String getBrand() { + return brand; + } + + public String getDescription() { + return description; + } + + public Double getSize() { + return size; + } + + public Double getPrice() { + return price; + } + + public Integer getQuantity() { + return quantity; + } } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index c63eae0..4fc2f61 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -1,4 +1,47 @@ package models; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class SneakerTest { + + + @Test + public void testSneakerSettersGetters() { + //given + Sneaker sneaker = new Sneaker(); + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + + //when + sneaker.setName("Nike Air Max"); + sneaker.setBrand("Nike"); + sneaker.setColor("White"); + sneaker.setSport("Basketball"); + sneaker.setSize(10D); + sneaker.setPrice(100.00); + sneaker.setQuantity(10); + String actualName = sneaker.getName(); + String actualBrand = sneaker.getBrand(); + String actualColor = sneaker.getColor(); + String actualSport = sneaker.getSport(); + Double actualSize = sneaker.getSize(); + Double actualPrice = sneaker.getPrice(); + Integer actualQuantity = sneaker.getQuantity(); + + //then + Assertions.assertEquals(expectedName, actualName); + Assertions.assertEquals(expectedBrand, actualBrand); + Assertions.assertEquals(expectedColor, actualColor); + Assertions.assertEquals(expectedSport, actualSport); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + } } diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java index 81c7672..eb81c30 100644 --- a/src/test/java/models/WhiskeyTest.java +++ b/src/test/java/models/WhiskeyTest.java @@ -1,4 +1,41 @@ package models; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class WhiskeyTest { + + @Test + public void testWhiskeySettersGetters() { + //given + Whiskey whiskey = new Whiskey(); + String expectedName = "Johnnie Walker"; + String expectedBrand = "Johnnie Walker"; + String expectedDescription = "The best whiskey in the world"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + whiskey.setName("Johnnie Walker"); + whiskey.setBrand("Johnnie Walker"); + whiskey.setDescription("The best whiskey in the world"); + whiskey.setSize(10D); + whiskey.setPrice(100.00); + whiskey.setQuantity(10); + String actualName = whiskey.getName(); + String actualBrand = whiskey.getBrand(); + String actualDescription = whiskey.getDescription(); + Double actualSize = whiskey.getSize(); + Double actualPrice = whiskey.getPrice(); + Integer actualQuantity = whiskey.getQuantity(); + + //then + Assertions.assertEquals(expectedName, actualName); + Assertions.assertEquals(expectedBrand, actualBrand); + Assertions.assertEquals(expectedDescription, actualDescription); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + } } From f271090a298d8653fa7b4d31e06f8d2af85e997a Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 29 Aug 2022 17:36:27 -0400 Subject: [PATCH 06/12] constructors --- src/main/java/models/Sneaker.java | 16 +++++++++++ src/main/java/models/Whiskey.java | 13 +++++++++ src/test/java/models/SneakerTest.java | 38 +++++++++++++++++++++++++++ src/test/java/models/WhiskeyTest.java | 34 ++++++++++++++++++++++++ 4 files changed, 101 insertions(+) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index 51f9c84..8794b53 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -12,6 +12,22 @@ public class Sneaker { private Double price; private Integer quantity; + public Sneaker() { + } + + public Sneaker(Long id, String name, String brand, + String color, String sport, Double size, + Double price, Integer quantity) { + this.id = id; + this.name = name; + this.brand = brand; + this.color = color; + this.sport = sport; + this.size = size; + this.price = price; + this.quantity = quantity; + } + public void setName(String name) { this.name = name; } diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java index 23a1171..9247d17 100644 --- a/src/main/java/models/Whiskey.java +++ b/src/main/java/models/Whiskey.java @@ -9,6 +9,19 @@ public class Whiskey { private Double price; private Integer quantity; + public Whiskey() { + } + + public Whiskey(Long id, String name, String brand, String description, Double size, Double price, Integer quantity) { + this.id = id; + this.name = name; + this.brand = brand; + this.description = description; + this.size = size; + this.price = price; + this.quantity = quantity; + } + public void setId(Long id) { this.id = id; } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 4fc2f61..8e685e3 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -10,6 +10,7 @@ public class SneakerTest { public void testSneakerSettersGetters() { //given Sneaker sneaker = new Sneaker(); + String expectedName = "Nike Air Max"; String expectedBrand = "Nike"; String expectedColor = "White"; @@ -27,6 +28,42 @@ public void testSneakerSettersGetters() { sneaker.setSize(10D); sneaker.setPrice(100.00); sneaker.setQuantity(10); + + String actualName = sneaker.getName(); + String actualBrand = sneaker.getBrand(); + String actualColor = sneaker.getColor(); + String actualSport = sneaker.getSport(); + Double actualSize = sneaker.getSize(); + Double actualPrice = sneaker.getPrice(); + Integer actualQuantity = sneaker.getQuantity(); + + //then + Assertions.assertEquals(expectedName, actualName); + Assertions.assertEquals(expectedBrand, actualBrand); + Assertions.assertEquals(expectedColor, actualColor); + Assertions.assertEquals(expectedSport, actualSport); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + } + + @Test + public void testSneakerConstructor() { + //given + Long expectedId = 6L; + String expectedName = "Stan Smith"; + String expectedBrand = "Adidas"; + String expectedColor = "White"; + String expectedSport = "Tennis"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Sneaker sneaker = new Sneaker(expectedId, expectedName, expectedBrand, + expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); + + Long actualId = sneaker.getId(); String actualName = sneaker.getName(); String actualBrand = sneaker.getBrand(); String actualColor = sneaker.getColor(); @@ -36,6 +73,7 @@ public void testSneakerSettersGetters() { Integer actualQuantity = sneaker.getQuantity(); //then + Assertions.assertEquals(expectedId, actualId); Assertions.assertEquals(expectedName, actualName); Assertions.assertEquals(expectedBrand, actualBrand); Assertions.assertEquals(expectedColor, actualColor); diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java index eb81c30..cf4019f 100644 --- a/src/test/java/models/WhiskeyTest.java +++ b/src/test/java/models/WhiskeyTest.java @@ -38,4 +38,38 @@ public void testWhiskeySettersGetters() { Assertions.assertEquals(expectedPrice, actualPrice); Assertions.assertEquals(expectedQuantity, actualQuantity); } + + @Test + public void testWhiskeyConstructor() { + //given + Long expectedId = 6L; + String expectedName = "Whiskey"; + String expectedBrand = "Jameson"; + String expectedDescription = "Jameson Whiskey"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Whiskey whiskey = new Whiskey(expectedId, expectedName, expectedBrand, + expectedDescription, expectedSize, expectedPrice, expectedQuantity); + + Long actualId = whiskey.getId(); + String actualName = whiskey.getName(); + String actualBrand = whiskey.getBrand(); + String actualDescription = whiskey.getDescription(); + Double actualSize = whiskey.getSize(); + Double actualPrice = whiskey.getPrice(); + Integer actualQuantity = whiskey.getQuantity(); + + //then + Assertions.assertEquals(expectedId, actualId); + Assertions.assertEquals(expectedName, actualName); + Assertions.assertEquals(expectedBrand, actualBrand); + Assertions.assertEquals(expectedDescription, actualDescription); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + + } } From 52a2a2eed6907256f195272d64b990c1c23afb47 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 30 Aug 2022 13:24:39 -0400 Subject: [PATCH 07/12] sneakerservice --- src/main/java/models/Sneaker.java | 6 +- src/main/java/services/SneakerService.java | 54 +++++++ src/test/java/models/SneakerTest.java | 3 +- .../java/services/SneakerServiceTest.java | 139 ++++++++++++++++++ 4 files changed, 199 insertions(+), 3 deletions(-) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index 8794b53..a9818e6 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -15,10 +15,9 @@ public class Sneaker { public Sneaker() { } - public Sneaker(Long id, String name, String brand, + public Sneaker(String name, String brand, String color, String sport, Double size, Double price, Integer quantity) { - this.id = id; this.name = name; this.brand = brand; this.color = color; @@ -28,6 +27,9 @@ public Sneaker(Long id, String name, String brand, this.quantity = quantity; } + public void setId(int i) { + } + public void setName(String name) { this.name = name; } diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index a022353..dc7e07a 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -1,4 +1,58 @@ package services; +import models.Sneaker; +import java.util.ArrayList; +import java.util.List; + public class SneakerService { + + protected List inventory; + protected Sneaker sneaker; + + + public SneakerService() { + inventory = new ArrayList<>(); + sneaker = new Sneaker(); + } + + public Sneaker create(Sneaker sneaker) { + sneaker.setId(inventory.size() + 1); + inventory.add(sneaker); + return sneaker; + } + + public Sneaker find(Long id) { + for (Sneaker sneaker : inventory) { + if (sneaker.getId().equals(id)) { + return sneaker; + } + } + return null; + } + + public Sneaker update(Sneaker sneaker, Long id) { + for (Sneaker s : inventory) { + if (s.getId().equals(id)) { + s.setName(sneaker.getName()); + s.setBrand(sneaker.getBrand()); + s.setColor(sneaker.getColor()); + s.setSport(sneaker.getSport()); + s.setSize(sneaker.getSize()); + s.setPrice(sneaker.getPrice()); + s.setQuantity(sneaker.getQuantity()); + return s; + } + } + return null; + } + + public boolean delete(Long id) { + for (Sneaker s : inventory) { + if (s.getId().equals(id)) { + inventory.remove(s); + return true; + } + } + return false; + } } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 8e685e3..79a9185 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -60,7 +60,7 @@ public void testSneakerConstructor() { Integer expectedQuantity = 10; //when - Sneaker sneaker = new Sneaker(expectedId, expectedName, expectedBrand, + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); Long actualId = sneaker.getId(); @@ -82,4 +82,5 @@ public void testSneakerConstructor() { Assertions.assertEquals(expectedPrice, actualPrice); Assertions.assertEquals(expectedQuantity, actualQuantity); } + } diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java index 3ae2e9a..0c56b77 100644 --- a/src/test/java/services/SneakerServiceTest.java +++ b/src/test/java/services/SneakerServiceTest.java @@ -1,4 +1,143 @@ package services; +import models.Sneaker; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class SneakerServiceTest { + + @Test + public void testSneakerServiceCreate() { + //given + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, + expectedSize, expectedPrice, expectedQuantity); + + SneakerService sneakerService = new SneakerService(); + sneakerService.create(sneaker); + + //then + Assertions.assertEquals(expectedName, sneaker.getName()); + Assertions.assertEquals(expectedBrand, sneaker.getBrand()); + Assertions.assertEquals(expectedColor, sneaker.getColor()); + Assertions.assertEquals(expectedSport, sneaker.getSport()); + Assertions.assertEquals(expectedSize, sneaker.getSize()); + Assertions.assertEquals(expectedPrice, sneaker.getPrice()); + Assertions.assertEquals(expectedQuantity, sneaker.getQuantity()); + + } + + @Test + public void testSneakerServiceFind() { + //given + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, + expectedSize, expectedPrice, expectedQuantity); + + SneakerService sneakerService = new SneakerService(); + sneakerService.create(sneaker); + + Long id = sneaker.getId(); + + //then + Assertions.assertEquals(expectedName, sneakerService.find(id).getName()); + Assertions.assertEquals(expectedBrand, sneakerService.find(id).getBrand()); + Assertions.assertEquals(expectedColor, sneakerService.find(id).getColor()); + Assertions.assertEquals(expectedSport, sneakerService.find(id).getSport()); + Assertions.assertEquals(expectedSize, sneakerService.find(id).getSize()); + Assertions.assertEquals(expectedPrice, sneakerService.find(id).getPrice()); + Assertions.assertEquals(expectedQuantity, sneakerService.find(id).getQuantity()); + } + + @Test + public void testSneakerServiceUpdate() { + //given + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, + expectedSize, expectedPrice, expectedQuantity); + + SneakerService sneakerService = new SneakerService(); + sneakerService.create(sneaker); + + Long id = sneaker.getId(); + + String expectedName2 = "Nike Air Max"; + String expectedBrand2 = "Nike"; + String expectedColor2 = "White"; + String expectedSport2 = "Basketball"; + Double expectedSize2 = 10D; + Double expectedPrice2 = 100D; + Integer expectedQuantity2 = 10; + + //when + Sneaker sneaker2 = new Sneaker(expectedName2, expectedBrand2, expectedColor2, expectedSport2, + expectedSize2, expectedPrice2, expectedQuantity2); + + sneakerService.update(sneaker2, id); + + //then + Assertions.assertEquals(expectedName2, sneakerService.find(id).getName()); + Assertions.assertEquals(expectedBrand2, sneakerService.find(id).getBrand()); + Assertions.assertEquals(expectedColor2, sneakerService.find(id).getColor()); + Assertions.assertEquals(expectedSport2, sneakerService.find(id).getSport()); + Assertions.assertEquals(expectedSize2, sneakerService.find(id).getSize()); + Assertions.assertEquals(expectedPrice2, sneakerService.find(id).getPrice()); + Assertions.assertEquals(expectedQuantity2, sneakerService.find(id).getQuantity()); + } + + @Test + public void testSneakerServiceDelete() { + //given + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); + + SneakerService sneakerService = new SneakerService(); + sneakerService.create(sneaker); + + Long id = sneaker.getId(); + //then + Assertions.assertEquals(expectedName, sneakerService.find(id).getName()); + Assertions.assertEquals(expectedBrand, sneakerService.find(id).getBrand()); + Assertions.assertEquals(expectedColor, sneakerService.find(id).getColor()); + Assertions.assertEquals(expectedSport, sneakerService.find(id).getSport()); + Assertions.assertEquals(expectedSize, sneakerService.find(id).getSize()); + Assertions.assertEquals(expectedPrice, sneakerService.find(id).getPrice()); + Assertions.assertEquals(expectedQuantity, sneakerService.find(id).getQuantity()); + //when + sneakerService.delete(id); + //then + Assertions.assertNull(sneakerService.find(id)); + } } From 8fcde0d826c0e0b7c666cb627ef3b35d2ec6addd Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 31 Aug 2022 15:12:47 -0400 Subject: [PATCH 08/12] whiskeyservice --- src/main/java/models/Sneaker.java | 9 ++-- src/main/java/models/Whiskey.java | 14 +++-- src/main/java/services/SneakerService.java | 6 +-- src/main/java/services/WhiskeyService.java | 54 +++++++++++++++++++ src/test/java/models/SneakerTest.java | 2 +- src/test/java/models/WhiskeyTest.java | 4 +- .../java/services/SneakerServiceTest.java | 6 +-- .../java/services/WhiskeyServiceTest.java | 53 ++++++++++++++++++ 8 files changed, 129 insertions(+), 19 deletions(-) diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index a9818e6..5778653 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -1,9 +1,7 @@ package models; -import java.util.Date; - public class Sneaker { - private Long id; + private Integer id; private String name; private String brand; private String color; @@ -27,7 +25,8 @@ public Sneaker(String name, String brand, this.quantity = quantity; } - public void setId(int i) { + public void setId(Integer id) { + this.id = id; } public void setName(String name) { @@ -58,7 +57,7 @@ public void setQuantity(Integer quantity) { this.quantity = quantity; } - public Long getId() { + public Integer getId() { return id; } diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java index 9247d17..6a69de9 100644 --- a/src/main/java/models/Whiskey.java +++ b/src/main/java/models/Whiskey.java @@ -1,7 +1,7 @@ package models; public class Whiskey { - private Long id; + private Integer id; private String name; private String brand; private String description; @@ -12,8 +12,7 @@ public class Whiskey { public Whiskey() { } - public Whiskey(Long id, String name, String brand, String description, Double size, Double price, Integer quantity) { - this.id = id; + public Whiskey(String name, String brand, String description, Double size, Double price, Integer quantity) { this.name = name; this.brand = brand; this.description = description; @@ -22,7 +21,7 @@ public Whiskey(Long id, String name, String brand, String description, Double si this.quantity = quantity; } - public void setId(Long id) { + public void setId(Integer id) { this.id = id; } @@ -50,7 +49,7 @@ public void setQuantity(Integer quantity) { this.quantity = quantity; } - public Long getId() { + public Integer getId() { return id; } @@ -77,4 +76,9 @@ public Double getPrice() { public Integer getQuantity() { return quantity; } + + @Override + public String toString() { + return "Whiskey{" + "id=" + id + ", name=" + name + ", brand=" + brand + ", description=" + description + ", size=" + size + ", price=" + price + ", quantity=" + quantity + '}'; + } } diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index dc7e07a..894db24 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -21,7 +21,7 @@ public Sneaker create(Sneaker sneaker) { return sneaker; } - public Sneaker find(Long id) { + public Sneaker find(Integer id) { for (Sneaker sneaker : inventory) { if (sneaker.getId().equals(id)) { return sneaker; @@ -30,7 +30,7 @@ public Sneaker find(Long id) { return null; } - public Sneaker update(Sneaker sneaker, Long id) { + public Sneaker update(Sneaker sneaker, Integer id) { for (Sneaker s : inventory) { if (s.getId().equals(id)) { s.setName(sneaker.getName()); @@ -46,7 +46,7 @@ public Sneaker update(Sneaker sneaker, Long id) { return null; } - public boolean delete(Long id) { + public boolean delete(Integer id) { for (Sneaker s : inventory) { if (s.getId().equals(id)) { inventory.remove(s); diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java index 1307c24..d0f85a2 100644 --- a/src/main/java/services/WhiskeyService.java +++ b/src/main/java/services/WhiskeyService.java @@ -1,4 +1,58 @@ package services; +import models.Whiskey; + +import java.util.ArrayList; +import java.util.List; + public class WhiskeyService { + + protected List inventory; + protected Whiskey whiskey; + + public WhiskeyService() { + inventory = new ArrayList<>(); + whiskey = new Whiskey(); + } + + public Whiskey create(Whiskey whiskey) { + whiskey.setId(inventory.size() + 1); + inventory.add(whiskey); + return whiskey; + } + + public Whiskey find(Integer id) { + for (Whiskey whiskey : inventory) { + if (whiskey.getId().equals(id)) { + return whiskey; + } + } + return null; + } + + public Whiskey update(Whiskey whiskey, Integer id) { + for (Whiskey w : inventory) { + if (w.getId().equals(id)) { + w.setName(whiskey.getName()); + w.setBrand(whiskey.getBrand()); + w.setDescription(whiskey.getDescription()); + w.setSize(whiskey.getSize()); + w.setPrice(whiskey.getPrice()); + w.setQuantity(whiskey.getQuantity()); + return w; + } + } + return null; + } + + public boolean delete(Integer id) { + for (Whiskey w : inventory) { + if (w.getId().equals(id)) { + inventory.remove(w); + return true; + } + } + return false; + } + } diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 79a9185..0098ff3 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -63,7 +63,7 @@ public void testSneakerConstructor() { Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); - Long actualId = sneaker.getId(); + Integer actualId = sneaker.getId(); String actualName = sneaker.getName(); String actualBrand = sneaker.getBrand(); String actualColor = sneaker.getColor(); diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java index cf4019f..9b56d99 100644 --- a/src/test/java/models/WhiskeyTest.java +++ b/src/test/java/models/WhiskeyTest.java @@ -51,10 +51,10 @@ public void testWhiskeyConstructor() { Integer expectedQuantity = 10; //when - Whiskey whiskey = new Whiskey(expectedId, expectedName, expectedBrand, + Whiskey whiskey = new Whiskey(expectedName, expectedBrand, expectedDescription, expectedSize, expectedPrice, expectedQuantity); - Long actualId = whiskey.getId(); + Integer actualId = whiskey.getId(); String actualName = whiskey.getName(); String actualBrand = whiskey.getBrand(); String actualDescription = whiskey.getDescription(); diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java index 0c56b77..0e38d3a 100644 --- a/src/test/java/services/SneakerServiceTest.java +++ b/src/test/java/services/SneakerServiceTest.java @@ -53,7 +53,7 @@ public void testSneakerServiceFind() { SneakerService sneakerService = new SneakerService(); sneakerService.create(sneaker); - Long id = sneaker.getId(); + Integer id = sneaker.getId(); //then Assertions.assertEquals(expectedName, sneakerService.find(id).getName()); @@ -83,7 +83,7 @@ public void testSneakerServiceUpdate() { SneakerService sneakerService = new SneakerService(); sneakerService.create(sneaker); - Long id = sneaker.getId(); + Integer id = sneaker.getId(); String expectedName2 = "Nike Air Max"; String expectedBrand2 = "Nike"; @@ -126,7 +126,7 @@ public void testSneakerServiceDelete() { SneakerService sneakerService = new SneakerService(); sneakerService.create(sneaker); - Long id = sneaker.getId(); + Integer id = sneaker.getId(); //then Assertions.assertEquals(expectedName, sneakerService.find(id).getName()); Assertions.assertEquals(expectedBrand, sneakerService.find(id).getBrand()); diff --git a/src/test/java/services/WhiskeyServiceTest.java b/src/test/java/services/WhiskeyServiceTest.java index cb856f0..e416ba3 100644 --- a/src/test/java/services/WhiskeyServiceTest.java +++ b/src/test/java/services/WhiskeyServiceTest.java @@ -1,4 +1,57 @@ package services; +import models.Whiskey; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + public class WhiskeyServiceTest { + + @Test + public void testCreate() { + WhiskeyService whiskeyService = new WhiskeyService(); + Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(whiskey); + Assertions.assertEquals(1, whiskeyService.inventory.size()); + } + + @Test + public void testFind() { + WhiskeyService whiskeyService = new WhiskeyService(); + Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(whiskey); + Assertions.assertEquals(whiskey, whiskeyService.find(1)); + } + + @Test + public void testUpdate() { + WhiskeyService whiskeyService = new WhiskeyService(); + Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(whiskey); + + Whiskey whiskey2 = new Whiskey("Jack Daniels", "Jack Daniels", "Jack Daniels Whiskey", + 12.0, 12.00, 12); + whiskeyService.create(whiskey2); + whiskeyService.update(whiskey2, 1); + + Assertions.assertEquals(1, whiskey.getId()); + Assertions.assertEquals("Jack Daniels", whiskeyService.find(1).getName()); + Assertions.assertEquals("Jack Daniels", whiskeyService.find(1).getBrand()); + Assertions.assertEquals("Jack Daniels Whiskey", whiskeyService.find(1).getDescription()); + Assertions.assertEquals(12.0, whiskeyService.find(1).getSize()); + Assertions.assertEquals(12.0, whiskeyService.find(1).getPrice()); + Assertions.assertEquals(12, whiskeyService.find(1).getQuantity()); + } + + @Test + public void testDelete() { + WhiskeyService whiskeyService = new WhiskeyService(); + Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(whiskey); + whiskeyService.delete(1); + Assertions.assertEquals(0, whiskeyService.inventory.size()); + } } From a96df8e16632db236b8d1920d7758a8e33523584 Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 31 Aug 2022 21:06:42 -0400 Subject: [PATCH 09/12] console --- src/main/java/io/Console.java | 164 +++++++++++++++++++++ src/main/java/models/Sneaker.java | 13 ++ src/main/java/services/SneakerService.java | 9 ++ 3 files changed, 186 insertions(+) create mode 100644 src/main/java/io/Console.java diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java new file mode 100644 index 0000000..68f0916 --- /dev/null +++ b/src/main/java/io/Console.java @@ -0,0 +1,164 @@ +package io; + +import models.Sneaker; +import services.SneakerService; + +import java.util.Scanner; + +public class Console { + + SneakerService sneakerService = new SneakerService(); + + public static void main(String[] args) { + Console console = new Console(); + console.printWelcome(); + console.printProductMenu(); + } + + public void printWelcome() { + System.out.println( + "**************************************************\n" + + "*** Welcome and Bienvenue ***\n" + + "*** to ***\n" + + "*** ZipCo Inventory Manager ***\n" + + "**************************************************\n"); + } + + public void printProductMenu() { + Console console = new Console(); + int selection = -1; + while(selection != 0) { + selection = readInt("Please select a product:\n" + + "1. Sneakers\n" + + "2. Whiskey"); + switch (selection) { + case 1: + sneakerMenuSelect(); + break; + case 2: + //whiskeyMenu(); + break; + case 0: + System.out.println("Goodbye!"); + System.exit(0); + break; + } + } + } + + public void printSneakerMenu() { + System.out.println( + "Please select an option:\n" + + "1. View all sneakers\n" + + "2. Add a new sneaker\n" + + "3. Find a sneaker\n" + + "4. Update a sneaker\n" + + "5. Delete a sneaker\n" + + "6. Previous menu\n" + + "0. Exit"); + } + + public void printSneakers() { + Sneaker[] sneakers = sneakerService.findAll(); + for (Sneaker sneaker : sneakers) { + System.out.println(sneaker); + } + } + + public void sneakerMenuSelect() { + Console console = new Console(); + int option = -1; + while (option != 0) { + console.printSneakerMenu(); + option = readInt("Please select an option: "); + switch (option) { + case 1: + printSneakers(); + break; + case 2: + String name = readString("Enter the sneaker name"); + String brand = readString("Enter the sneaker brand"); + String color = readString("Enter the sneaker color"); + String sport = readString("Enter the sneaker sport"); + Double size = readDouble("Enter the sneaker size"); + Double price = readDouble("Enter the sneaker price"); + Integer quantity = readInt("Enter the sneaker quantity"); + Sneaker sneaker = new Sneaker(name, brand, color, sport, size, price, quantity); + sneakerService.create(sneaker); + break; + case 3: + Integer id = readInt("Enter the sneaker id"); + Sneaker foundSneaker = sneakerService.find(id); + if (foundSneaker != null) { + System.out.println(foundSneaker); + } else { + System.out.println("Sneaker not found"); + } + break; + case 4: + id = readInt("Enter the sneaker id"); + Sneaker foundSneaker2 = sneakerService.find(id); + if (foundSneaker2 != null) { + String name2 = readString("Enter the sneaker name"); + String brand2 = readString("Enter the sneaker brand"); + String color2 = readString("Enter the sneaker color"); + String sport2 = readString("Enter the sneaker sport"); + Double size2 = readDouble("Enter the sneaker size"); + Double price2 = readDouble("Enter the sneaker price"); + Integer quantity2 = readInt("Enter the sneaker quantity"); + Sneaker sneaker2 = new Sneaker(name2, brand2, color2, sport2, size2, price2, quantity2); + sneakerService.update(sneaker2, id); + } else { + System.out.println("Sneaker not found"); + } + break; + case 5: + System.out.println("Enter the sneaker id:"); + id = readInt("Enter the sneaker id"); + sneakerService.delete(id); + break; + case 6: + // go back to product menu + printProductMenu(); + break; + case 0: + System.out.println("Goodbye!"); + System.exit(0); + break; + } + } + } + + private Integer readInt(String s) { + System.out.println(s); + Scanner scanner = new Scanner(System.in); + if(scanner.hasNextInt()) { + return scanner.nextInt(); + } else { + System.out.println("Invalid input"); + return readInt(s); + } + } + + private String readString(String s) { + System.out.println(s); + Scanner scanner = new Scanner(System.in); + if(scanner.hasNext()) { + return scanner.next(); + } else { + System.out.println("Invalid input"); + return readString(s); + } + } + + private Double readDouble(String s) { + System.out.println(s); + Scanner scanner = new Scanner(System.in); + if(scanner.hasNextDouble()) { + return scanner.nextDouble(); + } else { + System.out.println("Invalid input"); + return readDouble(s); + } + } +} diff --git a/src/main/java/models/Sneaker.java b/src/main/java/models/Sneaker.java index 5778653..a269a02 100644 --- a/src/main/java/models/Sneaker.java +++ b/src/main/java/models/Sneaker.java @@ -88,4 +88,17 @@ public Double getPrice() { public Integer getQuantity() { return quantity; } + + public String toString() { + return "Sneaker{" + + "id=" + id + + ", name='" + name + '\'' + + ", brand='" + brand + '\'' + + ", color='" + color + '\'' + + ", sport='" + sport + '\'' + + ", size=" + size + + ", price=" + price + + ", quantity=" + quantity + + '}'; + } } diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index 894db24..7acd8a1 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -18,6 +18,7 @@ public SneakerService() { public Sneaker create(Sneaker sneaker) { sneaker.setId(inventory.size() + 1); inventory.add(sneaker); + System.out.println(inventory.size()); return sneaker; } @@ -30,6 +31,14 @@ public Sneaker find(Integer id) { return null; } + public Sneaker[] findAll() { + Sneaker[] sneakers = new Sneaker[inventory.size()]; + for (int i = 0; i < inventory.size(); i++) { + sneakers[i] = inventory.get(i); + } + return sneakers; + } + public Sneaker update(Sneaker sneaker, Integer id) { for (Sneaker s : inventory) { if (s.getId().equals(id)) { From fa7105c30b4a2ab6457642fb284aa1bfd66e1551 Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 31 Aug 2022 21:53:23 -0400 Subject: [PATCH 10/12] added second product to console, edited models --- src/main/java/io/Console.java | 90 ++++++++++++++++++- src/main/java/models/Whiskey.java | 21 ++--- src/main/java/services/WhiskeyService.java | 9 +- src/test/java/models/SneakerTest.java | 37 +++++--- src/test/java/models/WhiskeyTest.java | 19 ++-- .../java/services/WhiskeyServiceTest.java | 11 ++- 6 files changed, 141 insertions(+), 46 deletions(-) diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java index 68f0916..696bfe9 100644 --- a/src/main/java/io/Console.java +++ b/src/main/java/io/Console.java @@ -1,13 +1,16 @@ package io; import models.Sneaker; +import models.Whiskey; import services.SneakerService; +import services.WhiskeyService; import java.util.Scanner; public class Console { SneakerService sneakerService = new SneakerService(); + WhiskeyService whiskeyService = new WhiskeyService(); public static void main(String[] args) { Console console = new Console(); @@ -25,18 +28,98 @@ public void printWelcome() { } public void printProductMenu() { - Console console = new Console(); int selection = -1; while(selection != 0) { selection = readInt("Please select a product:\n" + "1. Sneakers\n" + - "2. Whiskey"); + "2. Whiskey\n" + + "0. Exit"); switch (selection) { case 1: sneakerMenuSelect(); break; case 2: - //whiskeyMenu(); + whiskeyMenuSelect(); + break; + case 0: + System.out.println("Goodbye!"); + System.exit(0); + break; + } + } + } + + public void printWhiskeyMenu() { + System.out.println("Please select an option:\n" + + "1. View all whiskies\n" + + "2. Add a new whiskey\n" + + "3. Find a whiskey\n" + + "4. Update a whiskey\n" + + "5. Delete a whiskey\n" + + "6. Previous menu\n" + + "0. Exit"); + } + + public void printWhiskies() { + Whiskey[] whiskeys = whiskeyService.findAll(); + for (Whiskey w : whiskeys) { + System.out.println(w); + } + } + + public void whiskeyMenuSelect() { + Console console = new Console(); + int option = -1; + while(option != 0) { + console.printWhiskeyMenu(); + option = readInt("Please select an option: "); + switch (option) { + case 1: + printWhiskies(); + break; + case 2: + String brand = readString("Enter the brand: "); + String description = readString("Enter the description: "); + Double size = readDouble("Enter the size: "); + Double price = readDouble("Enter the price: "); + Integer quantity = readInt("Enter the quantity: "); + Whiskey whiskey = new Whiskey(brand, description, size, price, quantity); + whiskeyService.create(whiskey); + break; + case 3: + int id = readInt("Enter the id: "); + whiskey = whiskeyService.find(id); + if (whiskey != null) { + System.out.println(whiskey); + } else { + System.out.println("Whiskey not found"); + } + break; + case 4: + id = readInt("Enter the id: "); + whiskey = whiskeyService.find(id); + if (whiskey != null) { + brand = readString("Enter the brand: "); + description = readString("Enter the description: "); + size = readDouble("Enter the size: "); + price = readDouble("Enter the price: "); + quantity = readInt("Enter the quantity: "); + whiskey.setBrand(brand); + whiskey.setDescription(description); + whiskey.setSize(size); + whiskey.setPrice(price); + whiskey.setQuantity(quantity); + whiskeyService.update(whiskey, id); + } else { + System.out.println("Whiskey not found"); + } + break; + case 5: + id = readInt("Enter the id: "); + whiskeyService.delete(id); + break; + case 6: + console.printProductMenu(); break; case 0: System.out.println("Goodbye!"); @@ -113,7 +196,6 @@ public void sneakerMenuSelect() { } break; case 5: - System.out.println("Enter the sneaker id:"); id = readInt("Enter the sneaker id"); sneakerService.delete(id); break; diff --git a/src/main/java/models/Whiskey.java b/src/main/java/models/Whiskey.java index 6a69de9..fa29e36 100644 --- a/src/main/java/models/Whiskey.java +++ b/src/main/java/models/Whiskey.java @@ -2,7 +2,6 @@ public class Whiskey { private Integer id; - private String name; private String brand; private String description; private Double size; @@ -12,8 +11,7 @@ public class Whiskey { public Whiskey() { } - public Whiskey(String name, String brand, String description, Double size, Double price, Integer quantity) { - this.name = name; + public Whiskey(String brand, String description, Double size, Double price, Integer quantity) { this.brand = brand; this.description = description; this.size = size; @@ -25,10 +23,6 @@ public void setId(Integer id) { this.id = id; } - public void setName(String name) { - this.name = name; - } - public void setBrand(String brand) { this.brand = brand; } @@ -53,10 +47,6 @@ public Integer getId() { return id; } - public String getName() { - return name; - } - public String getBrand() { return brand; } @@ -79,6 +69,13 @@ public Integer getQuantity() { @Override public String toString() { - return "Whiskey{" + "id=" + id + ", name=" + name + ", brand=" + brand + ", description=" + description + ", size=" + size + ", price=" + price + ", quantity=" + quantity + '}'; + return "Whiskey{" + + "id=" + id + + ", brand='" + brand + '\'' + + ", description='" + description + '\'' + + ", size=" + size + + ", price=" + price + + ", quantity=" + quantity + + '}'; } } diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java index d0f85a2..580ae1f 100644 --- a/src/main/java/services/WhiskeyService.java +++ b/src/main/java/services/WhiskeyService.java @@ -30,10 +30,17 @@ public Whiskey find(Integer id) { return null; } + public Whiskey[] findAll() { + Whiskey[] whiskeys = new Whiskey[inventory.size()]; + for (int i = 0; i < inventory.size(); i++) { + whiskeys[i] = inventory.get(i); + } + return whiskeys; + } + public Whiskey update(Whiskey whiskey, Integer id) { for (Whiskey w : inventory) { if (w.getId().equals(id)) { - w.setName(whiskey.getName()); w.setBrand(whiskey.getBrand()); w.setDescription(whiskey.getDescription()); w.setSize(whiskey.getSize()); diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java index 0098ff3..4bfd616 100644 --- a/src/test/java/models/SneakerTest.java +++ b/src/test/java/models/SneakerTest.java @@ -1,6 +1,7 @@ package models; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class SneakerTest { @@ -21,13 +22,13 @@ public void testSneakerSettersGetters() { //when - sneaker.setName("Nike Air Max"); - sneaker.setBrand("Nike"); - sneaker.setColor("White"); - sneaker.setSport("Basketball"); - sneaker.setSize(10D); - sneaker.setPrice(100.00); - sneaker.setQuantity(10); + sneaker.setName(expectedName); + sneaker.setBrand(expectedBrand); + sneaker.setColor(expectedColor); + sneaker.setSport(expectedSport); + sneaker.setSize(expectedSize); + sneaker.setPrice(expectedPrice); + sneaker.setQuantity(expectedQuantity); String actualName = sneaker.getName(); String actualBrand = sneaker.getBrand(); @@ -50,7 +51,6 @@ public void testSneakerSettersGetters() { @Test public void testSneakerConstructor() { //given - Long expectedId = 6L; String expectedName = "Stan Smith"; String expectedBrand = "Adidas"; String expectedColor = "White"; @@ -63,7 +63,6 @@ public void testSneakerConstructor() { Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); - Integer actualId = sneaker.getId(); String actualName = sneaker.getName(); String actualBrand = sneaker.getBrand(); String actualColor = sneaker.getColor(); @@ -73,7 +72,6 @@ public void testSneakerConstructor() { Integer actualQuantity = sneaker.getQuantity(); //then - Assertions.assertEquals(expectedId, actualId); Assertions.assertEquals(expectedName, actualName); Assertions.assertEquals(expectedBrand, actualBrand); Assertions.assertEquals(expectedColor, actualColor); @@ -83,4 +81,23 @@ public void testSneakerConstructor() { Assertions.assertEquals(expectedQuantity, actualQuantity); } + @Test + public void toStringTest() { + //given + String expectedName = "Nike Air Max"; + String expectedBrand = "Nike"; + String expectedColor = "White"; + String expectedSport = "Basketball"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + String expectedString = "Sneaker{id=null, name='Nike Air Max', brand='Nike', color='White', sport='Basketball', size=10.0, price=100.0, quantity=10}"; + Sneaker sneaker = new Sneaker(expectedName, expectedBrand, expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); + + //when + String actual = sneaker.toString(); + //then + Assertions.assertEquals(expectedString, actual); + } + } diff --git a/src/test/java/models/WhiskeyTest.java b/src/test/java/models/WhiskeyTest.java index 9b56d99..44c4f5d 100644 --- a/src/test/java/models/WhiskeyTest.java +++ b/src/test/java/models/WhiskeyTest.java @@ -9,21 +9,18 @@ public class WhiskeyTest { public void testWhiskeySettersGetters() { //given Whiskey whiskey = new Whiskey(); - String expectedName = "Johnnie Walker"; - String expectedBrand = "Johnnie Walker"; - String expectedDescription = "The best whiskey in the world"; + String expectedBrand = "Jack Daniel's"; + String expectedDescription = "The finest whiskey in the world"; Double expectedSize = 10D; Double expectedPrice = 100D; Integer expectedQuantity = 10; //when - whiskey.setName("Johnnie Walker"); whiskey.setBrand("Johnnie Walker"); whiskey.setDescription("The best whiskey in the world"); whiskey.setSize(10D); whiskey.setPrice(100.00); whiskey.setQuantity(10); - String actualName = whiskey.getName(); String actualBrand = whiskey.getBrand(); String actualDescription = whiskey.getDescription(); Double actualSize = whiskey.getSize(); @@ -31,7 +28,6 @@ public void testWhiskeySettersGetters() { Integer actualQuantity = whiskey.getQuantity(); //then - Assertions.assertEquals(expectedName, actualName); Assertions.assertEquals(expectedBrand, actualBrand); Assertions.assertEquals(expectedDescription, actualDescription); Assertions.assertEquals(expectedSize, actualSize); @@ -42,20 +38,18 @@ public void testWhiskeySettersGetters() { @Test public void testWhiskeyConstructor() { //given - Long expectedId = 6L; - String expectedName = "Whiskey"; - String expectedBrand = "Jameson"; - String expectedDescription = "Jameson Whiskey"; + Integer expectedId = 6; + String expectedBrand = "Jack Daniel's"; + String expectedDescription = "The finest whiskey in the world"; Double expectedSize = 10D; Double expectedPrice = 100D; Integer expectedQuantity = 10; //when - Whiskey whiskey = new Whiskey(expectedName, expectedBrand, + Whiskey whiskey = new Whiskey(expectedBrand, expectedDescription, expectedSize, expectedPrice, expectedQuantity); Integer actualId = whiskey.getId(); - String actualName = whiskey.getName(); String actualBrand = whiskey.getBrand(); String actualDescription = whiskey.getDescription(); Double actualSize = whiskey.getSize(); @@ -64,7 +58,6 @@ public void testWhiskeyConstructor() { //then Assertions.assertEquals(expectedId, actualId); - Assertions.assertEquals(expectedName, actualName); Assertions.assertEquals(expectedBrand, actualBrand); Assertions.assertEquals(expectedDescription, actualDescription); Assertions.assertEquals(expectedSize, actualSize); diff --git a/src/test/java/services/WhiskeyServiceTest.java b/src/test/java/services/WhiskeyServiceTest.java index e416ba3..be99b8b 100644 --- a/src/test/java/services/WhiskeyServiceTest.java +++ b/src/test/java/services/WhiskeyServiceTest.java @@ -9,7 +9,7 @@ public class WhiskeyServiceTest { @Test public void testCreate() { WhiskeyService whiskeyService = new WhiskeyService(); - Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + Whiskey whiskey = new Whiskey("Jameson", "Jameson Whiskey", 12.0, 12.0, 12); whiskeyService.create(whiskey); Assertions.assertEquals(1, whiskeyService.inventory.size()); @@ -18,7 +18,7 @@ public void testCreate() { @Test public void testFind() { WhiskeyService whiskeyService = new WhiskeyService(); - Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + Whiskey whiskey = new Whiskey("Jameson", "Jameson Whiskey", 12.0, 12.0, 12); whiskeyService.create(whiskey); Assertions.assertEquals(whiskey, whiskeyService.find(1)); @@ -27,17 +27,16 @@ public void testFind() { @Test public void testUpdate() { WhiskeyService whiskeyService = new WhiskeyService(); - Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + Whiskey whiskey = new Whiskey("Jameson", "Jameson Whiskey", 12.0, 12.0, 12); whiskeyService.create(whiskey); - Whiskey whiskey2 = new Whiskey("Jack Daniels", "Jack Daniels", "Jack Daniels Whiskey", + Whiskey whiskey2 = new Whiskey("Jack Daniel's", "The finest whiskey in the world", 12.0, 12.00, 12); whiskeyService.create(whiskey2); whiskeyService.update(whiskey2, 1); Assertions.assertEquals(1, whiskey.getId()); - Assertions.assertEquals("Jack Daniels", whiskeyService.find(1).getName()); Assertions.assertEquals("Jack Daniels", whiskeyService.find(1).getBrand()); Assertions.assertEquals("Jack Daniels Whiskey", whiskeyService.find(1).getDescription()); Assertions.assertEquals(12.0, whiskeyService.find(1).getSize()); @@ -48,7 +47,7 @@ public void testUpdate() { @Test public void testDelete() { WhiskeyService whiskeyService = new WhiskeyService(); - Whiskey whiskey = new Whiskey("Whiskey", "Jameson", "Jameson Whiskey", + Whiskey whiskey = new Whiskey("Jameson", "Jameson Whiskey", 12.0, 12.0, 12); whiskeyService.create(whiskey); whiskeyService.delete(1); From b963c7614722a34ed99f9c019dc602f46632f568 Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 1 Sep 2022 14:14:30 -0400 Subject: [PATCH 11/12] filewriter to csv --- src/main/java/io/Console.java | 2 ++ src/main/java/services/SneakerService.java | 26 +++++++++++++++++++ src/main/java/services/WhiskeyService.java | 23 +++++++++++++++++ src/main/java/utils/CSVUtils.java | 29 ++++++++++++++++++++++ src/main/resources/sneakers.csv | 3 +++ src/main/resources/whiskies.csv | 3 +++ 6 files changed, 86 insertions(+) create mode 100644 src/main/java/utils/CSVUtils.java create mode 100644 src/main/resources/sneakers.csv create mode 100644 src/main/resources/whiskies.csv diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java index 696bfe9..835de20 100644 --- a/src/main/java/io/Console.java +++ b/src/main/java/io/Console.java @@ -85,6 +85,7 @@ public void whiskeyMenuSelect() { Integer quantity = readInt("Enter the quantity: "); Whiskey whiskey = new Whiskey(brand, description, size, price, quantity); whiskeyService.create(whiskey); + whiskeyService.writeToFile(); break; case 3: int id = readInt("Enter the id: "); @@ -168,6 +169,7 @@ public void sneakerMenuSelect() { Integer quantity = readInt("Enter the sneaker quantity"); Sneaker sneaker = new Sneaker(name, brand, color, sport, size, price, quantity); sneakerService.create(sneaker); + sneakerService.writeToFile(); break; case 3: Integer id = readInt("Enter the sneaker id"); diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index 7acd8a1..8f3b11f 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -1,7 +1,14 @@ package services; import models.Sneaker; +import utils.CSVUtils; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; public class SneakerService { @@ -64,4 +71,23 @@ public boolean delete(Integer id) { } return false; } + + public void writeToFile() { + try { + String csvFile = "src/main/resources/sneakers.csv"; + FileWriter writer = new FileWriter(csvFile); + List list = new ArrayList<>(); + CSVUtils.writeLine(writer, list); + for (Sneaker s : inventory) { + list.add(s.toString()); + CSVUtils.writeLine(writer, list); + list.clear(); + } + writer.flush(); + writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } } diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java index 580ae1f..f3a8455 100644 --- a/src/main/java/services/WhiskeyService.java +++ b/src/main/java/services/WhiskeyService.java @@ -1,7 +1,11 @@ package services; +import models.Sneaker; import models.Whiskey; +import utils.CSVUtils; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -62,4 +66,23 @@ public boolean delete(Integer id) { return false; } + public void writeToFile() { + try { + String csvFile = "src/main/resources/whiskies.csv"; + FileWriter writer = new FileWriter(csvFile); + List list = new ArrayList<>(); + CSVUtils.writeLine(writer, list); + for (Whiskey w : inventory) { + list.add(w.toString()); + CSVUtils.writeLine(writer, list); + list.clear(); + } + writer.flush(); + writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + } diff --git a/src/main/java/utils/CSVUtils.java b/src/main/java/utils/CSVUtils.java new file mode 100644 index 0000000..5f21c8a --- /dev/null +++ b/src/main/java/utils/CSVUtils.java @@ -0,0 +1,29 @@ +package utils; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.util.List; + +public class CSVUtils { + + private static final String COMMA_DELIMITER = ","; + + public static void writeLine(FileWriter writer, List list) throws IOException { + boolean first = true; + StringBuilder sb = new StringBuilder(); + for (Object product : list) { + if (!first) { + sb.append(COMMA_DELIMITER); + } + sb.append(product.toString()); + first = false; + } + sb.append("\n"); + writer.write(sb.toString()); + } + + + +} diff --git a/src/main/resources/sneakers.csv b/src/main/resources/sneakers.csv new file mode 100644 index 0000000..8b9671a --- /dev/null +++ b/src/main/resources/sneakers.csv @@ -0,0 +1,3 @@ + +Sneaker{id=1, name='1', brand='1', color='1', sport='1', size=1.0, price=1.0, quantity=1} +Sneaker{id=2, name='1', brand='1', color='11', sport='11', size=1.0, price=1.0, quantity=1} diff --git a/src/main/resources/whiskies.csv b/src/main/resources/whiskies.csv new file mode 100644 index 0000000..c21db26 --- /dev/null +++ b/src/main/resources/whiskies.csv @@ -0,0 +1,3 @@ + +Whiskey{id=1, brand='1', description='1', size=1.0, price=1.0, quantity=1} +Whiskey{id=2, brand='1', description='1', size=1.0, price=1.0, quantity=1} From 17b66da1a72e0dd956bebc86d8f4b7d14e733784 Mon Sep 17 00:00:00 2001 From: Mike Date: Thu, 1 Sep 2022 20:32:53 -0400 Subject: [PATCH 12/12] can read and write inventory from csv --- src/main/java/io/Console.java | 11 ++++-- src/main/java/services/SneakerService.java | 39 +++++++++++++++++++--- src/main/java/services/WhiskeyService.java | 31 ++++++++++++++++- src/main/java/utils/CSVUtils.java | 12 +++---- src/main/resources/sneakers.csv | 3 +- src/main/resources/whiskies.csv | 3 +- 6 files changed, 78 insertions(+), 21 deletions(-) diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java index 835de20..3bb0b7f 100644 --- a/src/main/java/io/Console.java +++ b/src/main/java/io/Console.java @@ -14,6 +14,7 @@ public class Console { public static void main(String[] args) { Console console = new Console(); + console.loadInventory(); console.printWelcome(); console.printProductMenu(); } @@ -49,6 +50,11 @@ public void printProductMenu() { } } + public void loadInventory() { + sneakerService.loadInventory(); + whiskeyService.loadInventory(); + } + public void printWhiskeyMenu() { System.out.println("Please select an option:\n" + "1. View all whiskies\n" + @@ -85,7 +91,6 @@ public void whiskeyMenuSelect() { Integer quantity = readInt("Enter the quantity: "); Whiskey whiskey = new Whiskey(brand, description, size, price, quantity); whiskeyService.create(whiskey); - whiskeyService.writeToFile(); break; case 3: int id = readInt("Enter the id: "); @@ -123,6 +128,7 @@ public void whiskeyMenuSelect() { console.printProductMenu(); break; case 0: + whiskeyService.writeToFile(); System.out.println("Goodbye!"); System.exit(0); break; @@ -169,7 +175,6 @@ public void sneakerMenuSelect() { Integer quantity = readInt("Enter the sneaker quantity"); Sneaker sneaker = new Sneaker(name, brand, color, sport, size, price, quantity); sneakerService.create(sneaker); - sneakerService.writeToFile(); break; case 3: Integer id = readInt("Enter the sneaker id"); @@ -202,10 +207,10 @@ public void sneakerMenuSelect() { sneakerService.delete(id); break; case 6: - // go back to product menu printProductMenu(); break; case 0: + sneakerService.writeToFile(); System.out.println("Goodbye!"); System.exit(0); break; diff --git a/src/main/java/services/SneakerService.java b/src/main/java/services/SneakerService.java index 8f3b11f..5cb8baf 100644 --- a/src/main/java/services/SneakerService.java +++ b/src/main/java/services/SneakerService.java @@ -1,15 +1,15 @@ package services; +import jdk.nashorn.internal.runtime.regexp.joni.Regex; import models.Sneaker; import utils.CSVUtils; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; +import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.regex.Pattern; public class SneakerService { @@ -25,7 +25,6 @@ public SneakerService() { public Sneaker create(Sneaker sneaker) { sneaker.setId(inventory.size() + 1); inventory.add(sneaker); - System.out.println(inventory.size()); return sneaker; } @@ -79,7 +78,14 @@ public void writeToFile() { List list = new ArrayList<>(); CSVUtils.writeLine(writer, list); for (Sneaker s : inventory) { - list.add(s.toString()); + list.add(s.getId()); + list.add(s.getName()); + list.add(s.getBrand()); + list.add(s.getColor()); + list.add(s.getSport()); + list.add(s.getSize()); + list.add(s.getPrice()); + list.add(s.getQuantity()); CSVUtils.writeLine(writer, list); list.clear(); } @@ -88,6 +94,29 @@ public void writeToFile() { } catch (IOException e) { throw new RuntimeException(e); } + } + + public void loadInventory() { + String csvSneakers = "src/main/resources/sneakers.csv"; + String delimiter = ","; + String line = ""; + try (BufferedReader br = new BufferedReader(new FileReader(csvSneakers))) { + br.readLine(); + while ((line = br.readLine()) != null) { + String[] values = line.split(delimiter); + String name = values[1]; + String brand = values[2]; + String color = values[3]; + String sport = values[4]; + Double size = Double.parseDouble(values[5]); + Double price = Double.parseDouble(values[6]); + Integer quantity = Integer.parseInt(values[7]); + Sneaker sneaker = new Sneaker(name, brand, color, sport, size, price, quantity); + create(sneaker); + } + } catch (IOException e) { + throw new RuntimeException(e); + } } } diff --git a/src/main/java/services/WhiskeyService.java b/src/main/java/services/WhiskeyService.java index f3a8455..3fe4b2d 100644 --- a/src/main/java/services/WhiskeyService.java +++ b/src/main/java/services/WhiskeyService.java @@ -4,6 +4,8 @@ import models.Whiskey; import utils.CSVUtils; +import java.io.BufferedReader; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; @@ -73,7 +75,12 @@ public void writeToFile() { List list = new ArrayList<>(); CSVUtils.writeLine(writer, list); for (Whiskey w : inventory) { - list.add(w.toString()); + list.add(w.getId()); + list.add(w.getBrand()); + list.add(w.getDescription()); + list.add(w.getSize()); + list.add(w.getPrice()); + list.add(w.getQuantity()); CSVUtils.writeLine(writer, list); list.clear(); } @@ -85,4 +92,26 @@ public void writeToFile() { } + public void loadInventory() { + String csvWhiskies = "src/main/resources/whiskies.csv"; + String delimiter = ","; + String line = ""; + + try (BufferedReader br = new BufferedReader(new FileReader(csvWhiskies))) { + br.readLine(); + while ((line = br.readLine()) != null) { + String[] values = line.split(delimiter); + String brand = values[1]; + String description = values[2]; + Double size = Double.parseDouble(values[3]); + Double price = Double.parseDouble(values[4]); + Integer quantity = Integer.parseInt(values[5]); + whiskey = new Whiskey(brand, description, size, price, quantity); + create(whiskey); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } diff --git a/src/main/java/utils/CSVUtils.java b/src/main/java/utils/CSVUtils.java index 5f21c8a..cf4461d 100644 --- a/src/main/java/utils/CSVUtils.java +++ b/src/main/java/utils/CSVUtils.java @@ -1,9 +1,8 @@ package utils; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Writer; +import models.Sneaker; + +import java.io.*; import java.util.List; public class CSVUtils { @@ -23,7 +22,4 @@ public static void writeLine(FileWriter writer, List list) throws IOExce sb.append("\n"); writer.write(sb.toString()); } - - - -} +} \ No newline at end of file diff --git a/src/main/resources/sneakers.csv b/src/main/resources/sneakers.csv index 8b9671a..8d7d34c 100644 --- a/src/main/resources/sneakers.csv +++ b/src/main/resources/sneakers.csv @@ -1,3 +1,2 @@ -Sneaker{id=1, name='1', brand='1', color='1', sport='1', size=1.0, price=1.0, quantity=1} -Sneaker{id=2, name='1', brand='1', color='11', sport='11', size=1.0, price=1.0, quantity=1} +1,Nike_Air_Max,Nike,White,Running,11.0,60.0,10 diff --git a/src/main/resources/whiskies.csv b/src/main/resources/whiskies.csv index c21db26..dd984c3 100644 --- a/src/main/resources/whiskies.csv +++ b/src/main/resources/whiskies.csv @@ -1,3 +1,2 @@ -Whiskey{id=1, brand='1', description='1', size=1.0, price=1.0, quantity=1} -Whiskey{id=2, brand='1', description='1', size=1.0, price=1.0, quantity=1} +1,Jack_Daniel's,The_finest_whiskey_in_the_world,10.0,15.0,10