diff --git a/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/Customer.java b/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/Customer.java new file mode 100644 index 00000000..bf0134b6 --- /dev/null +++ b/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/Customer.java @@ -0,0 +1,19 @@ +package com.example.refactoring._24_comments._43_introduce_assertion; + +public class Customer { + + private Double discountRate; + + public double applyDiscount(double amount) { + return (this.discountRate != null) ? amount - (this.discountRate * amount) : amount; + } + + public Double getDiscountRate() { + return discountRate; + } + + public void setDiscountRate(Double discountRate) { + assert discountRate != null && discountRate > 0; + this.discountRate = discountRate; + } +} diff --git a/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/_before/Customer.java b/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/_before/Customer.java new file mode 100644 index 00000000..4d716a49 --- /dev/null +++ b/refactoring/src/main/java/com/example/refactoring/_24_comments/_43_introduce_assertion/_before/Customer.java @@ -0,0 +1,18 @@ +package com.example.refactoring._24_comments._43_introduce_assertion._before; + +public class Customer { + + private Double discountRate; + + public double applyDiscount(double amount) { + return (this.discountRate != null) ? amount - (this.discountRate * amount) : amount; + } + + public Double getDiscountRate() { + return discountRate; + } + + public void setDiscountRate(Double discountRate) { + this.discountRate = discountRate; + } +} diff --git a/refactoring/src/test/java/com/example/refactoring/_24_comments/_43_introduce_assertion/CustomerTest.java b/refactoring/src/test/java/com/example/refactoring/_24_comments/_43_introduce_assertion/CustomerTest.java new file mode 100644 index 00000000..95fa2ffc --- /dev/null +++ b/refactoring/src/test/java/com/example/refactoring/_24_comments/_43_introduce_assertion/CustomerTest.java @@ -0,0 +1,15 @@ +package com.example.refactoring._24_comments._43_introduce_assertion; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class CustomerTest { + + @Test + void setDiscountRate() { + Customer customer = new Customer(); + customer.setDiscountRate(-10d); + } + +} \ No newline at end of file