From c599f2844cdfadf9dec9eaad06e04a9ec80659aa Mon Sep 17 00:00:00 2001 From: Elisabeth Berg Date: Sun, 24 May 2026 22:33:48 +0200 Subject: [PATCH] Added more tests to ShareTest --- src/test/java/ShareTest.java | 87 +++++++++++++++++----------- target/test-classes/ShareTest.class | Bin 2146 -> 4255 bytes 2 files changed, 54 insertions(+), 33 deletions(-) diff --git a/src/test/java/ShareTest.java b/src/test/java/ShareTest.java index 3d840bb..fbc018d 100644 --- a/src/test/java/ShareTest.java +++ b/src/test/java/ShareTest.java @@ -1,5 +1,6 @@ import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import Model.Share; @@ -7,69 +8,89 @@ import java.math.BigDecimal; - public class ShareTest { - @Test - void testShareConstructor() { + private Stock stock; + + @BeforeEach + void setUp() { + stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + } - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - BigDecimal quantity = new BigDecimal("10"); - BigDecimal purchasePrice = new BigDecimal("140"); + // ---- Positive tests ---- - Share share = new Share(stock, quantity, purchasePrice); + @Test + void testShareConstructorNotNull() { + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); 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); + assertEquals(stock, share.getStock()); } @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); + assertEquals(new BigDecimal("10"), share.getQuantity()); } @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); + assertEquals(new BigDecimal("140"), share.getPurchasePrice()); } @Test - void testNullStock() { + void testPurchasePriceZeroAllowed() { + // buying at price 0 is an edge case but not invalid + Share share = new Share(stock, new BigDecimal("5"), BigDecimal.ZERO); + assertEquals(BigDecimal.ZERO, share.getPurchasePrice()); + } - Share share = new Share(null, new BigDecimal("10"), new BigDecimal("100")); + // ---- Negative tests ---- - assertNull(share.getStock()); + @Test + void testNullStockThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(null, new BigDecimal("10"), new BigDecimal("100")) + ); } @Test - void testNegativePrice() { + void testNullQuantityThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, null, new BigDecimal("100")) + ); + } - Stock stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("-50")); + @Test + void testZeroQuantityThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, BigDecimal.ZERO, new BigDecimal("100")) + ); + } - assertEquals(new BigDecimal("-50"), share.getPurchasePrice()); + @Test + void testNegativeQuantityThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("-5"), new BigDecimal("100")) + ); + } + + @Test + void testNullPurchasePriceThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("10"), null) + ); } - + @Test + void testNegativePurchasePriceThrows() { + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("10"), new BigDecimal("-50")) + ); + } } diff --git a/target/test-classes/ShareTest.class b/target/test-classes/ShareTest.class index 0c78c049703a01bcab74ac0e8ab5fe5fc00f19d0..abf202d7c4c03ab1bbdc16b9533bcd782f12ea8d 100644 GIT binary patch literal 4255 zcmbVO3s)0I7`=l)LRb`|q9}p_Di1NB(yBpgKtyZ=1Vph~x`ZKF*zCs52DR_^`~7bJ zMSI%f(R2C(ditAs`pst9Ou{DAat@pMc4qFq^UeKc_OE{){|Vqceh#4u+XARoP=i{A z#uarIJr_a% zd&Gz)hVwonHqXhwDPbg}I_yJp0Q(gjKnp|NOiH!*EYH&7YO-Px3=MHY08FJH4M z%e+tdnvwH0qEj-XPXX*^%BegD(V+{2Auc3eV>r_l_lz5T8qHxU@pu^9#G_g~YCy$0 zLq_f!BuC#MXZH;TaZ@V- z`g%#6C@XH?$S^cd=g13bKBr|hni4Y%(^g#{x0lJzFkdz;KB^{CQHBFHm8rAr5i-AR z2SA;aHr3|#FdFoaK=vbj9+^}HW-R_$rUlOc%UG(lYx6GKXoA>z= z!!FS+YSO8-4O=vAyxo8=>JR{>9s8XbWMNxdXjt$H4aNBpBU&VklHCy9 zp&64-8-7_6j^6H7)CsXTI*o=+(J5)b6Oot0B5VUQ@6}Q4QV@(VGf# zPV}~j-cevX(R(6#UqRN1J`~YM3M?o3L`0t|Fes|U=OKK7F9Y~W!Poev=mgV@HFK3m z;?7o)5OrACLm zGf!E0u6)Y5$RjEh3|(}hF2@anTh7tR$#UN_94T0?NJ#PW0{D@kwenE+c&hiMb4 z=qjLNPkawhYZtZY>xZ7VD2mW8qu-jIb+BKkQH6PWif*7Dx9O?m2jB(Vp$NE3y;aWS zF$A5y=AI`A%!lj3^-s_+AKtN!o$J{BJN6a;#g`YblhlMI&}J9(Md}lj3j!Z6c?1je zRV3zhJi)>Fp5L(7!EYmcr*YUJ>WKF~!qEcNb~^k)M6GB>JN7$tO?eoXu9Xs?Vvz_p zh!cVrOCIsEOH2!^L@Xrr{(<9<&|k{mO8jl;#vzHn$KzLg`MJlx>heb_^Lyza5vP4b zbdrc8^jUON5)tu4?DQ3}{J%tqtsoI+d_?q+h+YzL{3%2vJrN5|tJDHfqWcx+*U=HD zpEAS)WP+1qfm0H3hr9ZHWNtqTq&(ttWEoKeN;viyBfuk!-7IW!-p^+VWynF#7m4Dc z7u!nnFrzMJLpav+7|;8IUZjc}kw6=KL08IvPWXe45$M$|L08LwPWppR5a{(SLG?1A zQ~sbg2=vyLpy@K8*Zo275a>c>(8elpRnZ2CV{x47Pi%ghfBjA84<5-6`2+K=MA7DM zn@KR$1ePHJx*1)97_|feooFQo3?ox-0-lqA_xb?S1zb`2ED3fFi@7q&CnW+u<#gY> z1S4*0nm3eF0ak>*B0+B)_;OO{!@^5SKI>jmSViEN1iU#ZA@Tj<0-q+$;;%($&VzcF zh@257U4G}_iKGkVKFzMe13aYP3xxX_y?Yt2(0{)5y4QNkYrX5WKJZ!}Q|nv82+{6; Khad10n*RmEn4S0l literal 2146 zcmb`H+fv(B6o&t8Y^*pA2M0SL&;*hOYz$bW&;y1f#t_n0I3%XbaMcm6#)t~rmE_Fy z8G6~vUiA@rQ)2p+LOa{=rIN2-ng`U|3+(uv=EG zdv=Z*}T!uO5Jzu zRY>?hC|LbPbEM(;}KB9@X^6qt$5V#V_;S7kblWt0SNm};li_G?|oc`F%#L>K}y>&bNU{uMd_ z?WeBETKYc=1o zjrqbA0vYjU8jtaW?}J!&h~!X7^Mh3jLkSQE^sj;&b}g^#uop%{f|p@X5~7;MHg;Gr zLcG}*xJ`~Ig}o6y!`L5;T3ULZ#@Eu)7%g2nWGbX%S%Fa1hE$49nHEt?mM<}Wl)0J7UgFkKX7U_U z=eTRA#Vi+lYW9G$+9e(y6&IJzF~1(4j9*}(@BR)=gQl~x8<9Z)6IkPF9XW-x8n_CP zvY3O86~f%ZG#=qI;uZL6m9rtf8|MG#h|}U1k?6k?U7o%VotQoT9zL=67XQSTwc^qR zHu~r}g*HXlX+qtl>ltFtD(r>8%{$mSPbFeZ!9HauvQ(8w*xy3f>U;A1A=oYEoJEm! zh=QIY^gN*p#3*75iv!Tr9`tgUYaKUx&?9)Nat%ED-=TK{XepT}=oLagBGRgY*#(BCuDG1__{g(`ZPQ