From a103b348ed1ecf7902f9a570435868ec0b6e8bee Mon Sep 17 00:00:00 2001 From: EspenTinius Date: Sat, 14 Mar 2026 08:02:38 +0100 Subject: [PATCH] Unit test SaleCalculator class --- .../g40/mappe/SaleCalculatorTest.java | 58 ++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculatorTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculatorTest.java index 5422865..3b7a0c6 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculatorTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleCalculatorTest.java @@ -1,3 +1,55 @@ -public class SaleCalculatorTest { - -} +package edu.ntnu.idi.idatt2003.g40.mappe; + +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class SaleCalculatorTest { + + @Test + void calculateGrossReturnsSalesPriceTimesQuantity() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + SaleCalculator calculator = new SaleCalculator(share); + + assertEquals(new BigDecimal("300"), calculator.calculateGross()); + } + + @Test + void calculateCommissionReturnsOnePercentOfGross() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + SaleCalculator calculator = new SaleCalculator(share); + + assertEquals(new BigDecimal("3.00"), calculator.calculateCommission()); + } + + @Test + void calculateTaxReturnsThirtyPercentOfProfitWhenProfitIsPositive() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + SaleCalculator calculator = new SaleCalculator(share); + + assertEquals(new BigDecimal("29.1000"), calculator.calculateTax()); + } + + @Test + void calculateTaxReturnsZeroWhenProfitIsZeroOrNegative() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("90")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + SaleCalculator calculator = new SaleCalculator(share); + + assertEquals(BigDecimal.ZERO, calculator.calculateTax()); + } + + @Test + void calculateTotalReturnsGrossMinusCommissionMinusTax() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + SaleCalculator calculator = new SaleCalculator(share); + + assertEquals(new BigDecimal("267.9000"), calculator.calculateTotal()); + } +} \ No newline at end of file