From 2aa2af0f7e67caad275f478550046bb2fdfc33dd Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Tue, 10 Mar 2026 19:30:55 +0100 Subject: [PATCH 1/4] Added PortfolioTest class --- src/test/java/PortfolioTest.java | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/test/java/PortfolioTest.java diff --git a/src/test/java/PortfolioTest.java b/src/test/java/PortfolioTest.java new file mode 100644 index 0000000..57ecb47 --- /dev/null +++ b/src/test/java/PortfolioTest.java @@ -0,0 +1,37 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import java.math.BigDecimal; + +public class PortfolioTest { + + @Test + void testAddShare() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + boolean result = portfolio.addShare(share); + + assertTrue(result); + assertTrue(portfolio.contains(share)); + } + + @Test + void testRemoveShare() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + portfolio.addShare(share); + + boolean result = portfolio.removeShare(share); + + assertTrue(result); + assertFalse(portfolio.contains(share)); + } + + +} From 6baafb4324dc45c198d4974835ec6c37fcd3f579 Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Tue, 10 Mar 2026 19:32:38 +0100 Subject: [PATCH 2/4] Moved test-classes --- {target/test-classes => src/test/java}/ExchangeTest.java | 0 {target/test-classes => src/test/java}/StockTest.java | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {target/test-classes => src/test/java}/ExchangeTest.java (100%) rename {target/test-classes => src/test/java}/StockTest.java (100%) diff --git a/target/test-classes/ExchangeTest.java b/src/test/java/ExchangeTest.java similarity index 100% rename from target/test-classes/ExchangeTest.java rename to src/test/java/ExchangeTest.java diff --git a/target/test-classes/StockTest.java b/src/test/java/StockTest.java similarity index 100% rename from target/test-classes/StockTest.java rename to src/test/java/StockTest.java From b42502d37941ef3704f4951c3c2f1e43ebe0e892 Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Tue, 10 Mar 2026 20:06:17 +0100 Subject: [PATCH 3/4] Added more tests to PortfolioTest class --- src/test/java/ExchangeTest.java | 9 +++--- src/test/java/PortfolioTest.java | 50 ++++++++++++++++++++++++++++++-- src/test/java/StockTest.java | 5 ++-- 3 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/test/java/ExchangeTest.java b/src/test/java/ExchangeTest.java index d3bcd62..eb3ad47 100644 --- a/src/test/java/ExchangeTest.java +++ b/src/test/java/ExchangeTest.java @@ -1,19 +1,18 @@ -import static org.junit.Assert.assertEquals; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import org.junit.Before; -import org.junit.Test; - public class ExchangeTest { private Exchange exchange; private Stock apple; private Stock google; - @Before + @BeforeAll public void setUp() { apple = new Stock("AAPL", "Apple", new BigDecimal("100")); google = new Stock("GOOGL", "Google", new BigDecimal("200")); diff --git a/src/test/java/PortfolioTest.java b/src/test/java/PortfolioTest.java index 57ecb47..36f7419 100644 --- a/src/test/java/PortfolioTest.java +++ b/src/test/java/PortfolioTest.java @@ -6,7 +6,7 @@ public class PortfolioTest { @Test - void testAddShare() { + void testAddSharePortfolio() { Portfolio portfolio = new Portfolio(); Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); @@ -19,7 +19,7 @@ void testAddShare() { } @Test - void testRemoveShare() { + void testRemoveSharePortfolio() { Portfolio portfolio = new Portfolio(); Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); @@ -33,5 +33,51 @@ void testRemoveShare() { assertFalse(portfolio.contains(share)); } + @Test + void testGetSharesPortfolio() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + portfolio.addShare(share); + + var shares = portfolio.getShares(); + + assertEquals(1, shares.size()); + assertTrue(shares.contains(share)); + } + + @Test + void testGetSharesBySymbolPortfolio() { + Portfolio portfolio = new Portfolio(); + + Stock stock1 = new Stock("AAPL", "Apple", new BigDecimal("150")); + Stock stock2 = new Stock("GOOGL", "Google", new BigDecimal("200")); + + Share share1 = new Share(stock1, new BigDecimal("10"), new BigDecimal("140")); + Share share2 = new Share(stock2, new BigDecimal("10"), new BigDecimal("190")); + + portfolio.addShare(share1); + portfolio.addShare(share2); + + var result = portfolio.getShares("AAPL"); + + assertEquals(1, result.size()); + assertTrue(result.contains(share1)); + } + + @Test + void testContainsPortfolio() { + Portfolio portfolio = new Portfolio(); + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + portfolio.addShare(share); + + assertTrue(portfolio.contains(share)); + } + } diff --git a/src/test/java/StockTest.java b/src/test/java/StockTest.java index 5f587f9..1bfcc2a 100644 --- a/src/test/java/StockTest.java +++ b/src/test/java/StockTest.java @@ -1,9 +1,8 @@ -import static org.junit.Assert.assertEquals; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import java.math.BigDecimal; -import org.junit.Test; - public class StockTest { From cb88b74d56457eccc3b7de7bda1e077ad12f70af Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Tue, 10 Mar 2026 20:54:33 +0100 Subject: [PATCH 4/4] Added ShareTest class --- src/test/java/ShareTest.java | 71 ++++++++++++++++++++++++ target/classes/PurchaseCalculator.class | Bin 1119 -> 1148 bytes 2 files changed, 71 insertions(+) create mode 100644 src/test/java/ShareTest.java diff --git a/src/test/java/ShareTest.java b/src/test/java/ShareTest.java new file mode 100644 index 0000000..ba6dc76 --- /dev/null +++ b/src/test/java/ShareTest.java @@ -0,0 +1,71 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import java.math.BigDecimal; + + +public class ShareTest { + + @Test + void testShareConstructor() { + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + BigDecimal quantity = new BigDecimal("10"); + BigDecimal purchasePrice = new BigDecimal("140"); + + Share share = new Share(stock, quantity, purchasePrice); + assertNotNull(share); + } + + @Test + void testGetStock() { + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + Stock result = share.getStock(); + + assertEquals(stock, result); + } + + @Test + void testGetQuantity() { + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + BigDecimal result = share.getQuantity(); + + assertEquals(new BigDecimal("10"), result); + } + + @Test + void testGetPurchasePrice() { + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + + BigDecimal result = share.getPurchasePrice(); + + assertEquals(new BigDecimal("140"), result); + } + + @Test + void testNullStock() { + + Share share = new Share(null, new BigDecimal("10"), new BigDecimal("100")); + + assertNull(share.getStock()); + } + + @Test + void testNegativePrice() { + + Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("-50")); + + assertEquals(new BigDecimal("-50"), share.getPurchasePrice()); + } + + +} diff --git a/target/classes/PurchaseCalculator.class b/target/classes/PurchaseCalculator.class index c50d57d26ecf38e8436e7d23e259422b041ad3ed..bab65f2784f8620746c271bbe1ef0ba7f9736df1 100644 GIT binary patch literal 1148 zcmZ{iYflqF7=_RD!j@&YwX~pkLq*%7ZM}dOZfc2suu%+^#E-+WX@_igad&F)Uugm* z(ZnC%k21cq3~duJ&F*w|=6&Xz^Um)-KYjsN$4d(dhU|7XblM_v>%w!oo=`z(A;mCt zAijvIC;V3R{oaA=C<`MD`DQ5mNH|Ic{-A(i{LoOgL+Q8-g+^T75vpB%C0kprBRj%d zWypN)3SUX}m0@H}`ciE$*u}<9TZHavX_p~Y5B6OfNlb9qm}E#6OS?9vk+YCxNXI)l zW{@Y1Emxh(HwVuZOBWwK3Wiw@3mFZ&#Bo^@#)$C2DAGHwaEv0uFxim4`>xyBbHk?C z^T<)Q5jeuz6`|B~^D(8`GGdr%oU0gQLSEC6cEw;BdkhnVh(mVYgh3S9Sj1fmcZhIN zTpUG|D6&r1Q}WQG$STE)&HcwSL#}^dJ?L~~6j9$YxJTM*m0E3C3#jOvtJGSGq4)9Nr|IjgUvt*Pgg(VC?l^=TIE>NhLU1` zU$1O%JknfyC!pKozLq-Y*?*&~=y0$=6-j#1NYIb^NS8RFyG3J~zS|h1H>cUhcn6R# zpJKec)Wg&X3VNJ7!Tk5Q>?*ypNYR@vJ0W!2X9#hPz7(jOig6t`Xw?4}aFftXr(lj) zp*@V&c=?#n$C&To_BWa*pvfcg+IURkXZs9|=`0N6E!oj0<$hxEQ+DYT_Z#INYNT@r zWyf2lNm_PDT+ZNZlKqh6YjG5%0dE;FkHL>McxfQ+j94Jz>=2Rni3zM2;*&mc-Pp}( cf%H7>;W-WKGz`FJuIGnbpUY&}jI(+17cTwRtN;K2 literal 1119 zcmZ{kdruQV6vfY!zFdY^3oVFmeDtAheSi-hCPMTN8^wSm{yCIQJ7n9%-KoKEr3sWo z6F-0-%6RWGElsRx+S%Q?_jk`Zv+3_YKYjsN$IBFA0-5b@&}ga9-Bezq>nY<0DZ~Y) z57ie{^;D->eZPO`HjKc;kuBX0bi)-Q02;x~;rbf%NCD>KJXl3MAKb zN1F`+r%>N%slZ(=?g_*<{R7v*7^FlR69Qv};+}&k%%m_akccWJGRTsUrfd2d?cn)B zarEd*5SWulAjz=2#5@zmiSWTH;)=@>DI^7^>bm2;>$dmZU{~#XRAC%v69`p_vxS9DgiCTJ%OK0b%;K1LP5TN;)^T5tw-#0u32+LNUdLZ4uvhg;w1 zJ_aTyqrHiUCeQ0EO>h#H@s`Z+r0h>DeaaNiP_CDHsF2PfloOTAkhIK@xU9uFB)b-k z6C9)kZ&|R6z>gSQz7Tg#%n>m^M3e(!3{Na^c|csZcC##yzAHUEqh*zr3-Gz?#Ua;y LnS%aMIGc^X_PEX!