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 diff --git a/src/main/java/io/Console.java b/src/main/java/io/Console.java new file mode 100644 index 0000000..3bb0b7f --- /dev/null +++ b/src/main/java/io/Console.java @@ -0,0 +1,253 @@ +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(); + console.loadInventory(); + 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() { + int selection = -1; + while(selection != 0) { + selection = readInt("Please select a product:\n" + + "1. Sneakers\n" + + "2. Whiskey\n" + + "0. Exit"); + switch (selection) { + case 1: + sneakerMenuSelect(); + break; + case 2: + whiskeyMenuSelect(); + break; + case 0: + System.out.println("Goodbye!"); + System.exit(0); + break; + } + } + } + + public void loadInventory() { + sneakerService.loadInventory(); + whiskeyService.loadInventory(); + } + + 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: + whiskeyService.writeToFile(); + 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: + id = readInt("Enter the sneaker id"); + sneakerService.delete(id); + break; + case 6: + printProductMenu(); + break; + case 0: + sneakerService.writeToFile(); + 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 new file mode 100644 index 0000000..a269a02 --- /dev/null +++ b/src/main/java/models/Sneaker.java @@ -0,0 +1,104 @@ +package models; + +public class Sneaker { + private Integer id; + private String name; + private String brand; + private String color; + private String sport; + private Double size; + private Double price; + private Integer quantity; + + public Sneaker() { + } + + public Sneaker(String name, String brand, + String color, String sport, Double size, + Double price, Integer quantity) { + this.name = name; + this.brand = brand; + this.color = color; + this.sport = sport; + this.size = size; + this.price = price; + this.quantity = quantity; + } + + public void setId(Integer id) { + this.id = id; + } + + 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 Integer 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; + } + + 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/models/Whiskey.java b/src/main/java/models/Whiskey.java new file mode 100644 index 0000000..fa29e36 --- /dev/null +++ b/src/main/java/models/Whiskey.java @@ -0,0 +1,81 @@ +package models; + +public class Whiskey { + private Integer id; + private String brand; + private String description; + private Double size; + private Double price; + private Integer quantity; + + public Whiskey() { + } + + public Whiskey(String brand, String description, Double size, Double price, Integer quantity) { + this.brand = brand; + this.description = description; + this.size = size; + this.price = price; + this.quantity = quantity; + } + + public void setId(Integer id) { + this.id = id; + } + + 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 Integer getId() { + return id; + } + + 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; + } + + @Override + public String toString() { + return "Whiskey{" + + "id=" + id + + ", 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 new file mode 100644 index 0000000..5cb8baf --- /dev/null +++ b/src/main/java/services/SneakerService.java @@ -0,0 +1,122 @@ +package services; + +import jdk.nashorn.internal.runtime.regexp.joni.Regex; +import models.Sneaker; +import utils.CSVUtils; + +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 { + + 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(Integer id) { + for (Sneaker sneaker : inventory) { + if (sneaker.getId().equals(id)) { + return sneaker; + } + } + 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)) { + 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(Integer id) { + for (Sneaker s : inventory) { + if (s.getId().equals(id)) { + inventory.remove(s); + return true; + } + } + 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.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(); + } + writer.flush(); + writer.close(); + } 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 new file mode 100644 index 0000000..3fe4b2d --- /dev/null +++ b/src/main/java/services/WhiskeyService.java @@ -0,0 +1,117 @@ +package services; + +import models.Sneaker; +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; +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[] 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.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; + } + + 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.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(); + } + writer.flush(); + writer.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + + 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 new file mode 100644 index 0000000..cf4461d --- /dev/null +++ b/src/main/java/utils/CSVUtils.java @@ -0,0 +1,25 @@ +package utils; + +import models.Sneaker; + +import java.io.*; +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()); + } +} \ No newline at end of file diff --git a/src/main/resources/sneakers.csv b/src/main/resources/sneakers.csv new file mode 100644 index 0000000..8d7d34c --- /dev/null +++ b/src/main/resources/sneakers.csv @@ -0,0 +1,2 @@ + +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 new file mode 100644 index 0000000..dd984c3 --- /dev/null +++ b/src/main/resources/whiskies.csv @@ -0,0 +1,2 @@ + +1,Jack_Daniel's,The_finest_whiskey_in_the_world,10.0,15.0,10 diff --git a/src/test/java/models/SneakerTest.java b/src/test/java/models/SneakerTest.java new file mode 100644 index 0000000..4bfd616 --- /dev/null +++ b/src/test/java/models/SneakerTest.java @@ -0,0 +1,103 @@ +package models; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +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(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(); + 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 + 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(expectedName, expectedBrand, + expectedColor, expectedSport, expectedSize, expectedPrice, expectedQuantity); + + 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 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 new file mode 100644 index 0000000..44c4f5d --- /dev/null +++ b/src/test/java/models/WhiskeyTest.java @@ -0,0 +1,68 @@ +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 expectedBrand = "Jack Daniel's"; + String expectedDescription = "The finest whiskey in the world"; + Double expectedSize = 10D; + Double expectedPrice = 100D; + Integer expectedQuantity = 10; + + //when + whiskey.setBrand("Johnnie Walker"); + whiskey.setDescription("The best whiskey in the world"); + whiskey.setSize(10D); + whiskey.setPrice(100.00); + whiskey.setQuantity(10); + String actualBrand = whiskey.getBrand(); + String actualDescription = whiskey.getDescription(); + Double actualSize = whiskey.getSize(); + Double actualPrice = whiskey.getPrice(); + Integer actualQuantity = whiskey.getQuantity(); + + //then + Assertions.assertEquals(expectedBrand, actualBrand); + Assertions.assertEquals(expectedDescription, actualDescription); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + } + + @Test + public void testWhiskeyConstructor() { + //given + 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(expectedBrand, + expectedDescription, expectedSize, expectedPrice, expectedQuantity); + + Integer actualId = whiskey.getId(); + 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(expectedBrand, actualBrand); + Assertions.assertEquals(expectedDescription, actualDescription); + Assertions.assertEquals(expectedSize, actualSize); + Assertions.assertEquals(expectedPrice, actualPrice); + Assertions.assertEquals(expectedQuantity, actualQuantity); + + } +} diff --git a/src/test/java/services/SneakerServiceTest.java b/src/test/java/services/SneakerServiceTest.java new file mode 100644 index 0000000..0e38d3a --- /dev/null +++ b/src/test/java/services/SneakerServiceTest.java @@ -0,0 +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); + + Integer 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); + + Integer 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); + + Integer 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)); + } +} diff --git a/src/test/java/services/WhiskeyServiceTest.java b/src/test/java/services/WhiskeyServiceTest.java new file mode 100644 index 0000000..be99b8b --- /dev/null +++ b/src/test/java/services/WhiskeyServiceTest.java @@ -0,0 +1,56 @@ +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("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("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("Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(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).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("Jameson", "Jameson Whiskey", + 12.0, 12.0, 12); + whiskeyService.create(whiskey); + whiskeyService.delete(1); + Assertions.assertEquals(0, whiskeyService.inventory.size()); + } +}