From 44e2aa3fb815a3288e6484ba76e40761d9d8dea8 Mon Sep 17 00:00:00 2001 From: EspenTinius Date: Sat, 14 Mar 2026 09:31:06 +0100 Subject: [PATCH 1/5] Unit Test PuraseCalculator class --- .../g40/mappe/PurchaseCalculatorTest.java | 48 +++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java index 6737cf2..15091a7 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java @@ -1,3 +1,45 @@ -public class PurchaseCalculatorTest { - -} +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 PurchaseCalculatorTest { + + @Test + void calculateGrossReturnsPurchasePriceTimesQuantity() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + PurchaseCalculator calculator = new PurchaseCalculator(share); + + assertEquals(new BigDecimal("200"), calculator.calculateGross()); + } + + @Test + void calculateCommissionReturnsHalfPercentOfGross() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + PurchaseCalculator calculator = new PurchaseCalculator(share); + + assertEquals(new BigDecimal("1.000"), calculator.calculateCommission()); + } + + @Test + void calculateTaxReturnsZero() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + PurchaseCalculator calculator = new PurchaseCalculator(share); + + assertEquals(BigDecimal.ZERO, calculator.calculateTax()); + } + + @Test + void calculateTotalReturnsGrossPlusCommission() { + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + PurchaseCalculator calculator = new PurchaseCalculator(share); + + assertEquals(new BigDecimal("201.000"), calculator.calculateTotal()); + } +} \ No newline at end of file From 2079d3850fa70cd4aca272a88a78c3b8cfe1817a Mon Sep 17 00:00:00 2001 From: EspenTinius Date: Sat, 14 Mar 2026 09:35:40 +0100 Subject: [PATCH 2/5] Unit Test portfolio class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nĂ¥ er det faktisk portfoliotesten som ligger med og ikke bare en kopi av den andre testen --- .../idatt2003/g40/mappe/PortfolioTest.java | 83 ++++++++++++++++++- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PortfolioTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PortfolioTest.java index 3518005..c8a5e3a 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PortfolioTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PortfolioTest.java @@ -1,3 +1,80 @@ -public class PortfolioTest { - -} +package edu.ntnu.idi.idatt2003.g40.mappe; + +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; + +class PortfolioTest { + + @Test + void addShareAddsShareToPortfolio() { + Portfolio portfolio = new Portfolio(); + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); + + boolean result = portfolio.addShare(share); + + assertTrue(result); + assertTrue(portfolio.contains(share)); + } + + @Test + void removeShareRemovesShareFromPortfolio() { + Portfolio portfolio = new Portfolio(); + Stock stock = new Stock("TSLA", "Tesla", new BigDecimal("200")); + Share share = new Share(stock, new BigDecimal("1"), new BigDecimal("200")); + + portfolio.addShare(share); + boolean result = portfolio.removeShare(share); + + assertTrue(result); + assertFalse(portfolio.contains(share)); + } + + @Test + void getSharesReturnsAllShares() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("3"), new BigDecimal("150")); + + portfolio.addShare(share); + + List shares = portfolio.getShares(); + + assertEquals(1, shares.size()); + assertTrue(shares.contains(share)); + } + + @Test + void getSharesWithSymbolReturnsMatchingShares() { + Portfolio portfolio = new Portfolio(); + + Stock apple = new Stock("AAPL", "Apple", new BigDecimal("150")); + Stock tesla = new Stock("TSLA", "Tesla", new BigDecimal("200")); + + Share appleShare = new Share(apple, new BigDecimal("1"), new BigDecimal("150")); + Share teslaShare = new Share(tesla, new BigDecimal("1"), new BigDecimal("200")); + + portfolio.addShare(appleShare); + portfolio.addShare(teslaShare); + + List result = portfolio.getShares("AAPL"); + + assertEquals(1, result.size()); + assertTrue(result.contains(appleShare)); + } + + @Test + void containsReturnsFalseWhenShareNotPresent() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("NVDA", "Nvidia", new BigDecimal("800")); + Share share = new Share(stock, new BigDecimal("1"), new BigDecimal("800")); + + assertFalse(portfolio.contains(share)); + } +} \ No newline at end of file From 43520c295ce3ad638f639c943523d2d52e6da8e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Espen=20Tinius=20Roli=20S=C3=B8rensen?= Date: Sat, 14 Mar 2026 09:37:35 +0100 Subject: [PATCH 3/5] Update PurchaseCalculatorTest.java --- .../g40/mappe/PurchaseCalculatorTest.java | 46 +------------------ 1 file changed, 2 insertions(+), 44 deletions(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java index 15091a7..1d05b55 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java @@ -1,45 +1,3 @@ -package edu.ntnu.idi.idatt2003.g40.mappe; +public class PurchaseCalculatorTest { -import org.junit.jupiter.api.Test; -import java.math.BigDecimal; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -class PurchaseCalculatorTest { - - @Test - void calculateGrossReturnsPurchasePriceTimesQuantity() { - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); - PurchaseCalculator calculator = new PurchaseCalculator(share); - - assertEquals(new BigDecimal("200"), calculator.calculateGross()); - } - - @Test - void calculateCommissionReturnsHalfPercentOfGross() { - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); - PurchaseCalculator calculator = new PurchaseCalculator(share); - - assertEquals(new BigDecimal("1.000"), calculator.calculateCommission()); - } - - @Test - void calculateTaxReturnsZero() { - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); - PurchaseCalculator calculator = new PurchaseCalculator(share); - - assertEquals(BigDecimal.ZERO, calculator.calculateTax()); - } - - @Test - void calculateTotalReturnsGrossPlusCommission() { - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - Share share = new Share(stock, new BigDecimal("2"), new BigDecimal("100")); - PurchaseCalculator calculator = new PurchaseCalculator(share); - - assertEquals(new BigDecimal("201.000"), calculator.calculateTotal()); - } -} \ No newline at end of file +} From a1b4e9ce4122961c9884e0f9a6a28157198f7448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Espen=20Tinius=20Roli=20S=C3=B8rensen?= Date: Sat, 14 Mar 2026 09:37:59 +0100 Subject: [PATCH 4/5] Update PurchaseCalculatorTest.java --- .../edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java index 1d05b55..4d6b128 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java @@ -1,3 +1,2 @@ public class PurchaseCalculatorTest { - } From 47167403f0a9038297d2a5e4f0a69c2e745b063c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Espen=20Tinius=20Roli=20S=C3=B8rensen?= Date: Sat, 14 Mar 2026 09:38:15 +0100 Subject: [PATCH 5/5] Update PurchaseCalculatorTest.java --- .../edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java index 4d6b128..4ebae9c 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseCalculatorTest.java @@ -1,2 +1,3 @@ public class PurchaseCalculatorTest { + }