diff --git a/.github/linters/checkstyle.xml b/.github/linters/checkstyle.xml
index e26ff27b..6b7e49b4 100644
--- a/.github/linters/checkstyle.xml
+++ b/.github/linters/checkstyle.xml
@@ -74,7 +74,10 @@
-
+
+
+
+
@@ -303,4 +306,4 @@
-
\ No newline at end of file
+
diff --git a/.github/workflows/checkstyle.xml b/.github/workflows/checkstyle.xml
new file mode 100644
index 00000000..6b7e49b4
--- /dev/null
+++ b/.github/workflows/checkstyle.xml
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
new file mode 100644
index 00000000..7892b8c2
--- /dev/null
+++ b/.github/workflows/linter.yml
@@ -0,0 +1,51 @@
+---
+#################################
+#################################
+## Super Linter GitHub Actions ##
+#################################
+#################################
+name: Lint Code Base
+
+#############################
+# Start the job on all push #
+#############################
+on:
+ push:
+ branches-ignore: [master, main]
+ # Remove the line above to run when pushing to master
+ pull_request:
+ branches: [master, main]
+
+###############
+# Set the Job #
+###############
+jobs:
+ build:
+ # Name the Job
+ name: Lint Code Base
+ # Set the agent to run on
+ runs-on: ubuntu-latest
+
+ ##################
+ # Load all steps #
+ ##################
+ steps:
+ ##########################
+ # Checkout the code base #
+ ##########################
+ - name: Checkout Code
+ uses: actions/checkout@v3
+ with:
+ # Full git history is needed to get a proper
+ # list of changed files within `super-linter`
+ fetch-depth: 0
+
+ ################################
+ # Run Linter against code base #
+ ################################
+ - name: Lint Code Base
+ uses: github/super-linter@v4
+ env:
+ VALIDATE_ALL_CODEBASE: false
+ DEFAULT_BRANCH: master
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..8ae564c3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+# FlowerStore
+Rightfully acquiered from @dobosevych \
+TO RUN THE STORE PROPERLY UNCOMMENT CODE FOR FILLING THE INVENTORY
+
+## Best-selling flowers. Ever
diff --git a/src/main/java/flower/store/Flower.java b/src/main/java/flower/store/Flower.java
deleted file mode 100644
index 206ef870..00000000
--- a/src/main/java/flower/store/Flower.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package flower.store;
-
-import lombok.Getter;
-import lombok.Setter;
-
-
-
-@Setter
-public class Flower {
- @Getter
- private double sepalLength;
- private FlowerColor color;
- @Getter
- private double price;
- @Getter
- private FlowerType flowerType;
-
- public String getColor() {
- return color.toString();
- }
-}
diff --git a/src/main/java/flower/store/FlowerColor.java b/src/main/java/flower/store/FlowerColor.java
deleted file mode 100644
index 4a6221f7..00000000
--- a/src/main/java/flower/store/FlowerColor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package flower.store;
-
-public enum FlowerColor {
- /**
- * Flower colors.
- */
- RED("#FF0000"), BLUE("#0000FF");
- private final String stringRepresentation;
-
- FlowerColor(String stringRepresentation) {
- this.stringRepresentation = stringRepresentation;
- }
-
- @Override
- public String toString() {
- return stringRepresentation;
- }
-}
diff --git a/src/main/java/flower/store/FlowerInventory.java b/src/main/java/flower/store/FlowerInventory.java
new file mode 100644
index 00000000..7a5a9872
--- /dev/null
+++ b/src/main/java/flower/store/FlowerInventory.java
@@ -0,0 +1,56 @@
+package flower.store;
+
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerSpec;
+
+import java.util.ArrayList;
+
+import java.util.List;
+
+/**
+ * flower inventory. here we store our flowers
+ */
+public class FlowerInventory {
+ private final List inventory = new ArrayList<>();
+
+
+ /**
+ * constructor for flower inventory
+ * currently has only three flowers
+ */
+ public FlowerInventory() {
+
+
+
+
+ }
+
+ /**
+ * adds flowers to inventory
+ * @param flower flower user wants to add
+ */
+ public void addFlower(Flower flower) {
+ inventory.add(flower);
+ }
+ /**
+ * search tool to find flowers in the inventory
+ * @param searchSpec - is the specification for search
+ * @return a list of flowers which fit the specification
+ * */
+ public List search(FlowerSpec searchSpec) {
+
+ List matchingFlowers = new ArrayList<>();
+ for (Flower flower : inventory) {
+ FlowerSpec flowerSpec = flower.getSpec();
+ if (searchSpec.getColor() != flowerSpec.getColor()) {
+ continue;
+ }
+ if (searchSpec.getSepalLength() != flowerSpec.getSepalLength()) {
+ continue;
+ }
+ matchingFlowers.add(flower);
+ }
+ return matchingFlowers;
+ }
+}
+
diff --git a/src/main/java/flower/store/FlowerPack.java b/src/main/java/flower/store/FlowerPack.java
deleted file mode 100644
index 44c99495..00000000
--- a/src/main/java/flower/store/FlowerPack.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package flower.store;
-
-public class FlowerPack {
- private Flower flower;
- private int quantity;
-}
diff --git a/src/main/java/flower/store/FlowerStore.java b/src/main/java/flower/store/FlowerStore.java
new file mode 100644
index 00000000..b1c54b6c
--- /dev/null
+++ b/src/main/java/flower/store/FlowerStore.java
@@ -0,0 +1,62 @@
+
+package flower.store;
+
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerSpec;
+
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * flower store class
+ * come and buy some!
+ */
+
+public class FlowerStore {
+ private static final
+ FlowerInventory FLOWER_INVENTORY = new FlowerInventory();
+
+ /**
+ * constructor
+ */
+ private FlowerStore() { }
+
+
+ /**
+ * the main method
+ * @param args arguments
+ */
+
+ public static void main(String[] args) {
+// !!!!!!UNCOMMENT TO HAVE A WORKING INVENTORY!!!!!!!
+// Flower redFlower = new Flower(10.0, FlowerColor.RED, 0.5);
+// Flower blueFlower = new Flower(30.0, FlowerColor.BLUE, 2.0);
+// Flower whiteFlower = new Flower(100.0, FlowerColor.WHITE, 10.0);
+// FLOWER_INVENTORY.addFlower(redFlower);
+// FLOWER_INVENTORY.addFlower(blueFlower);
+// FLOWER_INVENTORY.addFlower(whiteFlower);
+
+ Scanner sc = new Scanner(System.in);
+ System.out.print("Please, enter the color: ");
+ String color = sc.nextLine();
+ System.out.print("Please, enter the sepalLength: ");
+ double sepalLength = sc.nextDouble();
+ List matchingFlowers = search(color, sepalLength);
+ System.out.print("We found: "
+ + matchingFlowers.toString());
+ }
+
+ /**
+ * searches for flowers in the inventory
+ * @param color the color of the flower
+ * @param sepalLength the sepalLength of the flower
+ * @return a list of all flowers
+ */
+ public static List search(final String color,
+ final double sepalLength) {
+ FlowerSpec searchSpec = new FlowerSpec();
+ searchSpec.setSepalLength(sepalLength);
+ searchSpec.setColor(color);
+ return FLOWER_INVENTORY.search(searchSpec);
+ }
+}
diff --git a/src/main/java/flower/store/FlowerType.java b/src/main/java/flower/store/FlowerType.java
deleted file mode 100644
index ac22e2fd..00000000
--- a/src/main/java/flower/store/FlowerType.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package flower.store;
-
-public enum FlowerType {
- CHAMOMILE, ROSE, TULIP;
-}
diff --git a/src/main/java/flower/store/bucket/FlowerBucket.java b/src/main/java/flower/store/bucket/FlowerBucket.java
new file mode 100644
index 00000000..14e69348
--- /dev/null
+++ b/src/main/java/flower/store/bucket/FlowerBucket.java
@@ -0,0 +1,47 @@
+
+package flower.store.bucket;
+
+import flower.store.flowerpack.FlowerPack;
+import lombok.Getter;
+
+import java.util.ArrayList;
+import java.util.List;
+/**
+ * bucket
+ * */
+
+public class FlowerBucket {
+ @Getter
+ private int price = 0;
+
+ private final List flowerPacks = new ArrayList<>();
+
+ /**
+ * constructor
+ */
+ public FlowerBucket() { }
+
+ /**
+ * adds flowerpacks to bucket
+ * @param fp flower pack
+ */
+ public void add(final FlowerPack fp) {
+ flowerPacks.add(fp);
+ price += fp.getPrice();
+ }
+
+ /**
+ *
+ * @return string representation of flower bucket
+ */
+ @Override
+ public String toString() {
+ String res = "";
+ for (FlowerPack fp
+ : flowerPacks) {
+ res
+ = res.concat(fp.toString());
+ }
+ return res;
+ }
+}
diff --git a/src/main/java/flower/store/bucket/package-info.java b/src/main/java/flower/store/bucket/package-info.java
new file mode 100644
index 00000000..4155332b
--- /dev/null
+++ b/src/main/java/flower/store/bucket/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * bucket
+ * */
+package flower.store.bucket;
\ No newline at end of file
diff --git a/src/main/java/flower/store/flower/Flower.java b/src/main/java/flower/store/flower/Flower.java
new file mode 100644
index 00000000..e2a8cdf4
--- /dev/null
+++ b/src/main/java/flower/store/flower/Flower.java
@@ -0,0 +1,74 @@
+package flower.store.flower;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * Flowers. We sell them
+ */
+
+@Getter @Setter @ToString
+public class Flower {
+ private final FlowerSpec spec = new FlowerSpec();
+
+ private double price;
+
+ private FlowerType flowerType;
+
+ /**
+ * constructor
+ */
+ public Flower() { }
+
+ /**
+ * constructor with parameters
+ * @param price price
+ * @param color color
+ * @param sepalLength sepalLength
+ */
+ public Flower(double price,
+ FlowerColor color,
+ double sepalLength) {
+
+ setPrice(price);
+ setColor(color);
+ setSepalLength(sepalLength);
+ }
+
+ /**
+ * getter for sepalLength
+ * @return sepalLength
+ */
+ public double getSepalLength() {
+ return spec.getSepalLength();
+ }
+
+ /**
+ * setter for sepalLength
+ * @param sepalLength sepalLength
+ */
+ public void setSepalLength(double sepalLength) {
+ spec.setSepalLength(sepalLength);
+ }
+
+ /**
+ * setter for color
+ * @param color flower color
+ */
+
+ public void setColor(FlowerColor color) {
+ spec.setColor(color);
+ }
+
+ /**
+ * getter for color
+ * @return flower color
+ */
+ public String getColor() {
+ return spec.getColor().toString();
+ }
+
+
+
+}
diff --git a/src/main/java/flower/store/flower/FlowerColor.java b/src/main/java/flower/store/flower/FlowerColor.java
new file mode 100644
index 00000000..4724aad0
--- /dev/null
+++ b/src/main/java/flower/store/flower/FlowerColor.java
@@ -0,0 +1,38 @@
+package flower.store.flower;
+
+/**
+ * all possible flower colors
+ */
+public enum FlowerColor {
+ /**
+ * red
+ */
+ RED("red"), //("#FF0000"),
+ /**
+ * blue
+ */
+
+ BLUE("blue"), //("#0000FF"),
+ /**
+ * white
+ */
+ WHITE("white"); //("#000000");
+ private final String stringRepresentation;
+
+ /**
+ * sets all enum values
+ * @param stringRepresentation string representation of the color
+ */
+ FlowerColor(String stringRepresentation) {
+ this.stringRepresentation = stringRepresentation;
+ }
+
+ /**
+ * to string
+ * @return stringRepresentation of the color
+ */
+ @Override
+ public String toString() {
+ return stringRepresentation;
+ }
+}
diff --git a/src/main/java/flower/store/flower/FlowerFactory.java b/src/main/java/flower/store/flower/FlowerFactory.java
new file mode 100644
index 00000000..c2e89c49
--- /dev/null
+++ b/src/main/java/flower/store/flower/FlowerFactory.java
@@ -0,0 +1,27 @@
+package flower.store.flower;
+
+/**
+ * flower factory
+ */
+public class FlowerFactory {
+ /**
+ * constructor
+ */
+ public FlowerFactory() { }
+ /**
+ * creates flowers
+ * @param price price of the flower
+ * @param color color of the flower
+ * @param sepalLength sepalLength of the flower
+ * @return a new flower
+ */
+ public static Flower createFlower(final double price,
+ final FlowerColor color,
+ final double sepalLength) {
+ Flower flower = new Flower();
+ flower.setPrice(price);
+ flower.setColor(color);
+ flower.setSepalLength(sepalLength);
+ return flower;
+ }
+}
diff --git a/src/main/java/flower/store/flower/FlowerSpec.java b/src/main/java/flower/store/flower/FlowerSpec.java
new file mode 100644
index 00000000..30c074a0
--- /dev/null
+++ b/src/main/java/flower/store/flower/FlowerSpec.java
@@ -0,0 +1,45 @@
+package flower.store.flower;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * stores general data about a flower
+ */
+
+@Getter @Setter @ToString
+public class FlowerSpec {
+ private FlowerColor color;
+ private double sepalLength;
+ /**
+ * constructor
+ */
+ public FlowerSpec() { }
+ /**
+ * handles input
+ * @param clr color of the flower
+ */
+ public void setColor(FlowerColor clr) {
+ color = clr;
+ }
+
+ /**
+ * handles input
+ * @param clr color of the flower
+ */
+ public void setColor(String clr) {
+ if (clr.equalsIgnoreCase("red")) {
+ color = FlowerColor.RED;
+ }
+ else if (clr.equalsIgnoreCase("blue")) {
+ color = FlowerColor.BLUE;
+ }
+ else if (clr.equalsIgnoreCase("white")) {
+ color = FlowerColor.WHITE;
+ }
+ }
+
+
+
+}
diff --git a/src/main/java/flower/store/flower/FlowerType.java b/src/main/java/flower/store/flower/FlowerType.java
new file mode 100644
index 00000000..c74bcc88
--- /dev/null
+++ b/src/main/java/flower/store/flower/FlowerType.java
@@ -0,0 +1,37 @@
+package flower.store.flower;
+
+/**
+ * lists all possible flowers
+ */
+public enum FlowerType {
+ /**
+ * chamomile
+ */
+ CHAMOMILE("chamomile"),
+ /**
+ * rose
+ */
+ ROSE("rose"),
+ /**
+ * tulip
+ */
+ TULIP("tulip");
+ private final String stringRepresentation;
+
+ /**
+ * sets all enum values
+ * @param stringRepresentation string representation of the type
+ */
+ FlowerType(String stringRepresentation) {
+ this.stringRepresentation = stringRepresentation;
+ }
+
+ /**
+ * to string
+ * @return stringRepresentation of the type
+ */
+ @Override
+ public String toString() {
+ return stringRepresentation;
+ }
+}
diff --git a/src/main/java/flower/store/flower/package-info.java b/src/main/java/flower/store/flower/package-info.java
new file mode 100644
index 00000000..27f1a4b5
--- /dev/null
+++ b/src/main/java/flower/store/flower/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * all utilities for Flower
+ * */
+package flower.store.flower;
\ No newline at end of file
diff --git a/src/main/java/flower/store/flowerpack/FlowerPack.java b/src/main/java/flower/store/flowerpack/FlowerPack.java
new file mode 100644
index 00000000..e3625ab4
--- /dev/null
+++ b/src/main/java/flower/store/flowerpack/FlowerPack.java
@@ -0,0 +1,37 @@
+package flower.store.flowerpack;
+
+import flower.store.flower.Flower;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * flower pack
+ */
+@Getter @Setter
+public class FlowerPack {
+
+ private final Flower flower;
+ private int quantity;
+ /**
+ * flowerpack constructor
+ * @param flower flower type the user wants to make a pack of
+ * @param quantity amount of the flowers in a pack
+ * @param is any subtype of Flower
+ */
+ public FlowerPack(final T flower,
+ final int quantity) {
+ this.flower = flower;
+ this.quantity = quantity;
+ }
+
+ /**
+ * get price for all flowers in a pack
+ * @return the price of this amount of flowers
+ */
+
+ public double getPrice() {
+ return flower.getPrice() * quantity;
+ }
+
+
+}
diff --git a/src/main/java/flower/store/flowerpack/FlowerPackInventory.java b/src/main/java/flower/store/flowerpack/FlowerPackInventory.java
new file mode 100644
index 00000000..72da0e8e
--- /dev/null
+++ b/src/main/java/flower/store/flowerpack/FlowerPackInventory.java
@@ -0,0 +1,41 @@
+package flower.store.flowerpack;
+
+import flower.store.flower.Flower;
+
+/**
+ * Is used to group and manage flower packs
+ */
+public class FlowerPackInventory extends FlowerPack {
+ /**
+ * flowerpack inventory constructor
+ * @param flower flower type the user wants to make a pack of
+ * @param quantity amount of the flowers in a pack
+ * @param is any subtype of Flower
+ */
+ public FlowerPackInventory(T flower, int quantity) {
+ super(flower, quantity);
+ }
+
+ /**
+ * takes flowers from flower pack
+ * @param newPackSize the amount of flowers user wants
+ * to take away from the inventory
+ * @return a new flower pack inventory with given amount of flowers
+ */
+ public FlowerPack splitFLowerPack(int newPackSize) {
+ if (newPackSize <= getQuantity()) {
+ setQuantity(getQuantity() - newPackSize);
+ return new FlowerPack(getFlower(), newPackSize);
+ }
+ return null;
+
+ }
+
+ /**
+ * adds flowers to pack
+ * @param amount amount of flowers user wants to add to inventory
+ */
+ public void addFLowers(int amount) {
+ setQuantity(getQuantity() + amount);
+ }
+}
diff --git a/src/main/java/flower/store/flowerpack/package-info.java b/src/main/java/flower/store/flowerpack/package-info.java
new file mode 100644
index 00000000..5ea5e25c
--- /dev/null
+++ b/src/main/java/flower/store/flowerpack/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * flower pack stuff
+ */
+package flower.store.flowerpack;
\ No newline at end of file
diff --git a/src/main/java/flower/store/flowers/Chamomile.java b/src/main/java/flower/store/flowers/Chamomile.java
new file mode 100644
index 00000000..d35f4a40
--- /dev/null
+++ b/src/main/java/flower/store/flowers/Chamomile.java
@@ -0,0 +1,19 @@
+package flower.store.flowers;
+
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerColor;
+import flower.store.flower.FlowerType;
+
+/**
+ * the chamomile
+ */
+public class Chamomile extends Flower {
+ /**
+ * creates a white chamomile
+ */
+ public Chamomile() {
+ super();
+ setColor(FlowerColor.WHITE);
+ setFlowerType(FlowerType.CHAMOMILE);
+ }
+}
diff --git a/src/main/java/flower/store/flowers/Rose.java b/src/main/java/flower/store/flowers/Rose.java
new file mode 100644
index 00000000..b06bbd1f
--- /dev/null
+++ b/src/main/java/flower/store/flowers/Rose.java
@@ -0,0 +1,19 @@
+package flower.store.flowers;
+
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerColor;
+import flower.store.flower.FlowerType;
+
+/**
+ * the rose flower
+ */
+public class Rose extends Flower {
+ /**
+ * creates a red rose
+ */
+ public Rose() {
+ super();
+ setColor(FlowerColor.RED);
+ setFlowerType(FlowerType.ROSE);
+ }
+}
diff --git a/src/main/java/flower/store/flowers/Tulip.java b/src/main/java/flower/store/flowers/Tulip.java
new file mode 100644
index 00000000..e6c9712a
--- /dev/null
+++ b/src/main/java/flower/store/flowers/Tulip.java
@@ -0,0 +1,19 @@
+package flower.store.flowers;
+
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerColor;
+import flower.store.flower.FlowerType;
+
+/**
+ * A red pretty tulip
+ */
+public class Tulip extends Flower {
+ /**
+ * creates a beautiful tulip
+ */
+ public Tulip() {
+ super();
+ setColor(FlowerColor.RED);
+ setFlowerType(FlowerType.TULIP);
+ }
+}
diff --git a/src/main/java/flower/store/flowers/package-info.java b/src/main/java/flower/store/flowers/package-info.java
new file mode 100644
index 00000000..1d6c6c38
--- /dev/null
+++ b/src/main/java/flower/store/flowers/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * custom flowers
+ */
+package flower.store.flowers;
\ No newline at end of file
diff --git a/src/main/java/flower/store/package-info.java b/src/main/java/flower/store/package-info.java
new file mode 100644
index 00000000..6ffea5e4
--- /dev/null
+++ b/src/main/java/flower/store/package-info.java
@@ -0,0 +1,3 @@
+/**
+ * the flower store*/
+package flower.store;
\ No newline at end of file
diff --git a/src/test/java/flower/store/FlowerBucketTest.java b/src/test/java/flower/store/FlowerBucketTest.java
new file mode 100644
index 00000000..432a7beb
--- /dev/null
+++ b/src/test/java/flower/store/FlowerBucketTest.java
@@ -0,0 +1,47 @@
+package flower.store;
+
+import flower.store.bucket.FlowerBucket;
+import flower.store.flower.Flower;
+import flower.store.flowerpack.FlowerPack;
+import flower.store.flowers.Rose;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Assertions;
+
+import java.util.Random;
+
+/**
+ * tests for flowerbucket
+ * @hidden
+ */
+
+public class FlowerBucketTest {
+ private static final Random RANDOM_GENERATOR = new Random();
+ private static final int MAX_QUANTITY = 1000;
+ private static final int MAX_PRICE = 100;
+
+ private FlowerBucket flowerBucket;
+
+ /**
+ * setup
+ */
+ @BeforeEach
+ public void init() {
+ flowerBucket = new FlowerBucket();
+ }
+
+ /**
+ * test price
+ *
+ */
+ @Test
+ public void testPrice() {
+ int price = RANDOM_GENERATOR.nextInt(MAX_PRICE);
+ int quantity = RANDOM_GENERATOR.nextInt(MAX_QUANTITY);
+ Flower flower = new Rose();
+ flower.setPrice(price);
+ FlowerPack flowerPack = new FlowerPack(flower, quantity);
+ flowerBucket.add(flowerPack);
+ Assertions.assertEquals(price * quantity, flowerBucket.getPrice());
+ }
+}
diff --git a/src/test/java/flower/store/FlowerPackTest.java b/src/test/java/flower/store/FlowerPackTest.java
new file mode 100644
index 00000000..93dfd4bb
--- /dev/null
+++ b/src/test/java/flower/store/FlowerPackTest.java
@@ -0,0 +1,45 @@
+package flower.store;
+
+import flower.store.flower.Flower;
+import flower.store.flowerpack.FlowerPack;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.Random;
+
+/**
+ * test for flowers
+ * @hidden
+ */
+public class FlowerPackTest {
+ private static final Random RANDOM_GENERATOR = new Random();
+ private static final int MAX_PRICE = 100;
+ private static final int MAX_COUNT = 100;
+
+ private Flower flower;
+
+ /**
+ * setup
+ */
+ @BeforeEach
+ public void init() {
+ flower = new Flower();
+ }
+
+ /**
+ * test price
+ */
+ @Test
+ public void testPrice() {
+ int price = RANDOM_GENERATOR.nextInt(MAX_PRICE);
+ int count = RANDOM_GENERATOR.nextInt(MAX_COUNT);
+ flower.setPrice(price);
+ FlowerPack pack = new FlowerPack(flower, count);
+
+
+ Assertions.assertEquals(price * count, pack.getPrice());
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/test/java/flower/store/FlowerTest.java b/src/test/java/flower/store/FlowerTest.java
index 79151913..0bfc6a5f 100644
--- a/src/test/java/flower/store/FlowerTest.java
+++ b/src/test/java/flower/store/FlowerTest.java
@@ -1,5 +1,7 @@
package flower.store;
+import flower.store.flower.Flower;
+import flower.store.flower.FlowerColor;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -7,16 +9,26 @@
import org.junit.jupiter.api.Assertions;
+/**
+ * test for flowers
+ * @hidden
+ */
public class FlowerTest {
private static final Random RANDOM_GENERATOR = new Random();
private static final int MAX_PRICE = 100;
private Flower flower;
+ /**
+ * setup
+ */
@BeforeEach
public void init() {
flower = new Flower();
}
+ /**
+ * test price
+ */
@Test
public void testPrice() {
int price = RANDOM_GENERATOR.nextInt(MAX_PRICE);
@@ -24,10 +36,13 @@ public void testPrice() {
Assertions.assertEquals(price, flower.getPrice());
}
+ /**
+ * test color
+ */
@Test
public void testColor() {
FlowerColor color = FlowerColor.RED;
flower.setColor(color);
- Assertions.assertEquals("#FF0000", flower.getColor());
+ Assertions.assertEquals("red", flower.getColor());
}
}