diff --git a/src/main/java/pl/edu/agh/mwo/invoice/product/OtherProduct.java b/src/main/java/pl/edu/agh/mwo/invoice/product/OtherProduct.java index e324fe5a4..be62a994b 100644 --- a/src/main/java/pl/edu/agh/mwo/invoice/product/OtherProduct.java +++ b/src/main/java/pl/edu/agh/mwo/invoice/product/OtherProduct.java @@ -3,6 +3,7 @@ import java.math.BigDecimal; public class OtherProduct extends Product { + public OtherProduct(String name, BigDecimal price) { super(name, price, new BigDecimal("0.23")); } diff --git a/src/main/java/pl/edu/agh/mwo/invoice/product/Product.java b/src/main/java/pl/edu/agh/mwo/invoice/product/Product.java index 318de9ac9..dc09e2fb7 100644 --- a/src/main/java/pl/edu/agh/mwo/invoice/product/Product.java +++ b/src/main/java/pl/edu/agh/mwo/invoice/product/Product.java @@ -9,25 +9,41 @@ public abstract class Product { private final BigDecimal taxPercent; + protected Product(String name, BigDecimal price, BigDecimal tax) { + + if(name == null || name.isBlank()) { + throw new IllegalArgumentException("Product name cannot be null"); + } this.name = name; + + if(price == null) { + throw new IllegalArgumentException("Price cannot be null"); + } this.price = price; + + if(tax == null|| price.compareTo(BigDecimal.ZERO) < 0) { + throw new IllegalArgumentException("Tax percent cannot be null"); + } this.taxPercent = tax; } + public String getName() { - return null; + return this.name; } public BigDecimal getPrice() { - return null; + return this.price; } public BigDecimal getTaxPercent() { - return null; + return this.taxPercent; } public BigDecimal getPriceWithTax() { - return null; + BigDecimal result = this.price.multiply(this.taxPercent); + return (BigDecimal)price.add(result); + } }