diff --git a/src/test/java/ExchangeTest.java b/src/test/java/ExchangeTest.java index 4aa8f3a..cc55f5d 100644 --- a/src/test/java/ExchangeTest.java +++ b/src/test/java/ExchangeTest.java @@ -27,15 +27,15 @@ public class ExchangeTest { @BeforeEach void setUp() { - apple = new Stock("AAPL", "Apple", new BigDecimal("100")); - google = new Stock("GOOGL", "Google", new BigDecimal("200")); + apple = new Stock("AAPL", "Apple", new BigDecimal("100")); + google = new Stock("GOOGL", "Google", new BigDecimal("200")); - List stocks = new ArrayList<>(); - stocks.add(apple); - stocks.add(google); + List stocks = new ArrayList<>(); + stocks.add(apple); + stocks.add(google); - exchange = new Exchange("TestExchange", stocks); - player = new Player("Jane", new BigDecimal("500000")); + exchange = new Exchange("TestExchange", stocks); + player = new Player("Jane", new BigDecimal("500000")); } // ---- Positive tests ---- @@ -45,7 +45,7 @@ void setUp() { */ @Test void testGetName() { - assertEquals("TestExchange", exchange.getName()); + assertEquals("TestExchange", exchange.getName()); } /** @@ -53,7 +53,7 @@ void testGetName() { */ @Test void testInitialWeekIsOne() { - assertEquals(1, exchange.getWeek()); + assertEquals(1, exchange.getWeek()); } /** @@ -61,8 +61,8 @@ void testInitialWeekIsOne() { */ @Test void testAdvanceIncrementsWeek() { - exchange.advance(); - assertEquals(2, exchange.getWeek()); + exchange.advance(); + assertEquals(2, exchange.getWeek()); } /** @@ -70,7 +70,7 @@ void testAdvanceIncrementsWeek() { */ @Test void testHasStockReturnsTrue() { - assertTrue(exchange.hasStock("AAPL")); + assertTrue(exchange.hasStock("AAPL")); } /** @@ -78,7 +78,7 @@ void testHasStockReturnsTrue() { */ @Test void testHasStockReturnsFalse() { - assertFalse(exchange.hasStock("MSFT")); + assertFalse(exchange.hasStock("MSFT")); } /** @@ -86,7 +86,7 @@ void testHasStockReturnsFalse() { */ @Test void testGetStockReturnsCorrectStock() { - assertEquals(apple, exchange.getStock("AAPL")); + assertEquals(apple, exchange.getStock("AAPL")); } /** @@ -94,7 +94,7 @@ void testGetStockReturnsCorrectStock() { */ @Test void testGetStockReturnsNullForUnknown() { - assertNull(exchange.getStock("MSFT")); + assertNull(exchange.getStock("MSFT")); } /** @@ -102,9 +102,9 @@ void testGetStockReturnsNullForUnknown() { */ @Test void testFindStocksBySymbol() { - List result = exchange.findStocks("AAPL"); - assertEquals(1, result.size()); - assertEquals("AAPL", result.get(0).getSymbol()); + List result = exchange.findStocks("AAPL"); + assertEquals(1, result.size()); + assertEquals("AAPL", result.get(0).getSymbol()); } /** @@ -112,8 +112,8 @@ void testFindStocksBySymbol() { */ @Test void testFindStocksByCompanyName() { - List result = exchange.findStocks("e"); - assertEquals(2, result.size()); + List result = exchange.findStocks("e"); + assertEquals(2, result.size()); } /** @@ -121,8 +121,8 @@ void testFindStocksByCompanyName() { */ @Test void testFindStocksNoMatch() { - List result = exchange.findStocks("Samsung"); - assertEquals(0, result.size()); + List result = exchange.findStocks("Samsung"); + assertEquals(0, result.size()); } /** @@ -130,8 +130,8 @@ void testFindStocksNoMatch() { */ @Test void testFindStocksEmptyTermReturnsAll() { - List result = exchange.findStocks(""); - assertEquals(2, result.size()); + List result = exchange.findStocks(""); + assertEquals(2, result.size()); } /** @@ -139,10 +139,10 @@ void testFindStocksEmptyTermReturnsAll() { */ @Test void testBuyReturnsCommittedPurchase() { - Transaction t = exchange.buy("AAPL", new BigDecimal("5"), player); - assertNotNull(t); - assertTrue(t.isCommitted()); - assertInstanceOf(Purchase.class, t); + Transaction t = exchange.buy("AAPL", new BigDecimal("5"), player); + assertNotNull(t); + assertTrue(t.isCommitted()); + assertInstanceOf(Purchase.class, t); } /** @@ -150,9 +150,9 @@ void testBuyReturnsCommittedPurchase() { */ @Test void testBuyDeductsMoneyFromPlayer() { - BigDecimal before = player.getMoney(); - exchange.buy("AAPL", new BigDecimal("5"), player); - assertTrue(player.getMoney().compareTo(before) < 0); + BigDecimal before = player.getMoney(); + exchange.buy("AAPL", new BigDecimal("5"), player); + assertTrue(player.getMoney().compareTo(before) < 0); } /** @@ -160,8 +160,8 @@ void testBuyDeductsMoneyFromPlayer() { */ @Test void testBuyAddsShareToPortfolio() { - exchange.buy("AAPL", new BigDecimal("5"), player); - assertFalse(player.getPortfolio().getShares("AAPL").isEmpty()); + exchange.buy("AAPL", new BigDecimal("5"), player); + assertFalse(player.getPortfolio().getShares("AAPL").isEmpty()); } /** @@ -169,13 +169,13 @@ void testBuyAddsShareToPortfolio() { */ @Test void testSellReturnsCommittedSale() { - exchange.buy("AAPL", new BigDecimal("5"), player); - Share share = player.getPortfolio().getShares("AAPL").get(0); + exchange.buy("AAPL", new BigDecimal("5"), player); + Share share = player.getPortfolio().getShares("AAPL").get(0); - Transaction t = exchange.sell(share, player); - assertNotNull(t); - assertTrue(t.isCommitted()); - assertInstanceOf(Sale.class, t); + Transaction t = exchange.sell(share, player); + assertNotNull(t); + assertTrue(t.isCommitted()); + assertInstanceOf(Sale.class, t); } /** @@ -183,12 +183,12 @@ void testSellReturnsCommittedSale() { */ @Test void testSellAddsMoney() { - exchange.buy("AAPL", new BigDecimal("5"), player); - Share share = player.getPortfolio().getShares("AAPL").get(0); - BigDecimal before = player.getMoney(); + exchange.buy("AAPL", new BigDecimal("5"), player); + Share share = player.getPortfolio().getShares("AAPL").get(0); + BigDecimal before = player.getMoney(); - exchange.sell(share, player); - assertTrue(player.getMoney().compareTo(before) > 0); + exchange.sell(share, player); + assertTrue(player.getMoney().compareTo(before) > 0); } /** @@ -196,11 +196,11 @@ void testSellAddsMoney() { */ @Test void testSellRemovesShareFromPortfolio() { - exchange.buy("AAPL", new BigDecimal("5"), player); - Share share = player.getPortfolio().getShares("AAPL").get(0); + exchange.buy("AAPL", new BigDecimal("5"), player); + Share share = player.getPortfolio().getShares("AAPL").get(0); - exchange.sell(share, player); - assertTrue(player.getPortfolio().getShares("AAPL").isEmpty()); + exchange.sell(share, player); + assertTrue(player.getPortfolio().getShares("AAPL").isEmpty()); } /** @@ -208,9 +208,9 @@ void testSellRemovesShareFromPortfolio() { */ @Test void testGetGainersReturnsRequestedLimit() { - exchange.advance(); // prices must have changed at least once for a meaningful sort - List gainers = exchange.getGainers(1); - assertEquals(1, gainers.size()); + exchange.advance(); // prices must have changed at least once for a meaningful sort + List gainers = exchange.getGainers(1); + assertEquals(1, gainers.size()); } /** @@ -218,9 +218,9 @@ void testGetGainersReturnsRequestedLimit() { */ @Test void testGetLosersReturnsRequestedLimit() { - exchange.advance(); - List losers = exchange.getLosers(1); - assertEquals(1, losers.size()); + exchange.advance(); + List losers = exchange.getLosers(1); + assertEquals(1, losers.size()); } // ---- Negative tests ---- @@ -230,9 +230,9 @@ void testGetLosersReturnsRequestedLimit() { */ @Test void testConstructorNullNameThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Exchange(null, List.of(apple)) - ); + assertThrows(IllegalArgumentException.class, () -> + new Exchange(null, List.of(apple)) + ); } /** @@ -240,9 +240,9 @@ void testConstructorNullNameThrows() { */ @Test void testConstructorBlankNameThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Exchange(" ", List.of(apple)) - ); + assertThrows(IllegalArgumentException.class, () -> + new Exchange(" ", List.of(apple)) + ); } /** @@ -250,9 +250,9 @@ void testConstructorBlankNameThrows() { */ @Test void testConstructorNullStockListThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Exchange("X", null) - ); + assertThrows(IllegalArgumentException.class, () -> + new Exchange("X", null) + ); } /** @@ -260,12 +260,12 @@ void testConstructorNullStockListThrows() { */ @Test void testConstructorNullStockEntryThrows() { - List withNull = new ArrayList<>(); - withNull.add(apple); - withNull.add(null); - assertThrows(IllegalArgumentException.class, () -> - new Exchange("X", withNull) - ); + List withNull = new ArrayList<>(); + withNull.add(apple); + withNull.add(null); + assertThrows(IllegalArgumentException.class, () -> + new Exchange("X", withNull) + ); } /** @@ -273,9 +273,9 @@ void testConstructorNullStockEntryThrows() { */ @Test void testBuyNullSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.buy(null, new BigDecimal("5"), player) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.buy(null, new BigDecimal("5"), player) + ); } /** @@ -283,9 +283,9 @@ void testBuyNullSymbolThrows() { */ @Test void testBuyUnknownSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.buy("MSFT", new BigDecimal("5"), player) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.buy("MSFT", new BigDecimal("5"), player) + ); } /** @@ -293,9 +293,9 @@ void testBuyUnknownSymbolThrows() { */ @Test void testBuyZeroQuantityThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.buy("AAPL", BigDecimal.ZERO, player) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.buy("AAPL", BigDecimal.ZERO, player) + ); } /** @@ -303,9 +303,9 @@ void testBuyZeroQuantityThrows() { */ @Test void testBuyNegativeQuantityThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.buy("AAPL", new BigDecimal("-1"), player) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.buy("AAPL", new BigDecimal("-1"), player) + ); } /** @@ -313,9 +313,9 @@ void testBuyNegativeQuantityThrows() { */ @Test void testBuyNullPlayerThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.buy("AAPL", new BigDecimal("5"), null) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.buy("AAPL", new BigDecimal("5"), null) + ); } /** @@ -323,10 +323,10 @@ void testBuyNullPlayerThrows() { */ @Test void testBuyInsufficientFundsThrows() { - Player poorPlayer = new Player("Broke", new BigDecimal("1")); - assertThrows(IllegalStateException.class, () -> - exchange.buy("AAPL", new BigDecimal("5"), poorPlayer) - ); + Player poorPlayer = new Player("Broke", new BigDecimal("1")); + assertThrows(IllegalStateException.class, () -> + exchange.buy("AAPL", new BigDecimal("5"), poorPlayer) + ); } /** @@ -334,11 +334,11 @@ void testBuyInsufficientFundsThrows() { */ @Test void testSellNullPlayerThrows() { - exchange.buy("AAPL", new BigDecimal("5"), player); - Share share = player.getPortfolio().getShares("AAPL").get(0); - assertThrows(IllegalArgumentException.class, () -> - exchange.sell(share, null) - ); + exchange.buy("AAPL", new BigDecimal("5"), player); + Share share = player.getPortfolio().getShares("AAPL").get(0); + assertThrows(IllegalArgumentException.class, () -> + exchange.sell(share, null) + ); } /** @@ -346,10 +346,10 @@ void testSellNullPlayerThrows() { */ @Test void testSellShareNotInPortfolioThrows() { - Share unowned = new Share(apple, new BigDecimal("1"), new BigDecimal("100")); - assertThrows(IllegalStateException.class, () -> - exchange.sell(unowned, player) - ); + Share unowned = new Share(apple, new BigDecimal("1"), new BigDecimal("100")); + assertThrows(IllegalStateException.class, () -> + exchange.sell(unowned, player) + ); } /** @@ -357,9 +357,9 @@ void testSellShareNotInPortfolioThrows() { */ @Test void testAddNullObserverThrows() { - assertThrows(IllegalArgumentException.class, () -> - exchange.addObserver(null) - ); + assertThrows(IllegalArgumentException.class, () -> + exchange.addObserver(null) + ); } } diff --git a/src/test/java/PlayerTest.java b/src/test/java/PlayerTest.java index 880ac8f..cedf182 100644 --- a/src/test/java/PlayerTest.java +++ b/src/test/java/PlayerTest.java @@ -1,10 +1,10 @@ import static org.junit.jupiter.api.Assertions.*; +import Model.Player; +import java.math.BigDecimal; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import Model.Player; -import java.math.BigDecimal; /** * Unit tests for the Player class. @@ -16,7 +16,7 @@ public class PlayerTest { @BeforeEach void setUp() { - player = new Player("Jane", new BigDecimal("1000")); + player = new Player("Jane", new BigDecimal("1000")); } // ---- Positive tests ---- @@ -26,7 +26,7 @@ void setUp() { */ @Test void testGetName() { - assertEquals("Jane", player.getName()); + assertEquals("Jane", player.getName()); } /** @@ -34,7 +34,7 @@ void testGetName() { */ @Test void testGetMoneyMatchesStartingCapital() { - assertEquals(new BigDecimal("1000"), player.getMoney()); + assertEquals(new BigDecimal("1000"), player.getMoney()); } /** @@ -42,8 +42,8 @@ void testGetMoneyMatchesStartingCapital() { */ @Test void testAddMoney() { - player.addMoney(new BigDecimal("500")); - assertEquals(new BigDecimal("1500"), player.getMoney()); + player.addMoney(new BigDecimal("500")); + assertEquals(new BigDecimal("1500"), player.getMoney()); } /** @@ -51,8 +51,8 @@ void testAddMoney() { */ @Test void testAddMoneyZero() { - player.addMoney(BigDecimal.ZERO); - assertEquals(new BigDecimal("1000"), player.getMoney()); + player.addMoney(BigDecimal.ZERO); + assertEquals(new BigDecimal("1000"), player.getMoney()); } /** @@ -60,8 +60,8 @@ void testAddMoneyZero() { */ @Test void testWithdrawMoney() { - player.withdrawMoney(new BigDecimal("400")); - assertEquals(new BigDecimal("600"), player.getMoney()); + player.withdrawMoney(new BigDecimal("400")); + assertEquals(new BigDecimal("600"), player.getMoney()); } /** @@ -69,8 +69,8 @@ void testWithdrawMoney() { */ @Test void testWithdrawMoneyZero() { - player.withdrawMoney(BigDecimal.ZERO); - assertEquals(new BigDecimal("1000"), player.getMoney()); + player.withdrawMoney(BigDecimal.ZERO); + assertEquals(new BigDecimal("1000"), player.getMoney()); } /** @@ -78,7 +78,7 @@ void testWithdrawMoneyZero() { */ @Test void testPortfolioInitiallyEmpty() { - assertTrue(player.getPortfolio().getShares().isEmpty()); + assertTrue(player.getPortfolio().getShares().isEmpty()); } /** @@ -86,7 +86,7 @@ void testPortfolioInitiallyEmpty() { */ @Test void testTransactionArchiveInitiallyEmpty() { - assertTrue(player.getTransactionArchive().isEmpty()); + assertTrue(player.getTransactionArchive().isEmpty()); } /** @@ -94,8 +94,8 @@ void testTransactionArchiveInitiallyEmpty() { */ @Test void testStartingMoneyZeroAllowed() { - Player broke = new Player("Broke", BigDecimal.ZERO); - assertEquals(BigDecimal.ZERO, broke.getMoney()); + Player broke = new Player("Broke", BigDecimal.ZERO); + assertEquals(BigDecimal.ZERO, broke.getMoney()); } // ---- Negative tests ---- @@ -105,9 +105,9 @@ void testStartingMoneyZeroAllowed() { */ @Test void testNullNameThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Player(null, new BigDecimal("1000")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Player(null, new BigDecimal("1000")) + ); } /** @@ -115,9 +115,9 @@ void testNullNameThrows() { */ @Test void testBlankNameThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Player(" ", new BigDecimal("1000")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Player(" ", new BigDecimal("1000")) + ); } /** @@ -125,9 +125,9 @@ void testBlankNameThrows() { */ @Test void testNullStartingMoneyThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Player("Jane", null) - ); + assertThrows(IllegalArgumentException.class, () -> + new Player("Jane", null) + ); } /** @@ -135,9 +135,9 @@ void testNullStartingMoneyThrows() { */ @Test void testNegativeStartingMoneyThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Player("Jane", new BigDecimal("-1")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Player("Jane", new BigDecimal("-1")) + ); } /** @@ -145,9 +145,9 @@ void testNegativeStartingMoneyThrows() { */ @Test void testAddNullAmountThrows() { - assertThrows(IllegalArgumentException.class, () -> - player.addMoney(null) - ); + assertThrows(IllegalArgumentException.class, () -> + player.addMoney(null) + ); } /** @@ -155,9 +155,9 @@ void testAddNullAmountThrows() { */ @Test void testAddNegativeAmountThrows() { - assertThrows(IllegalArgumentException.class, () -> - player.addMoney(new BigDecimal("-100")) - ); + assertThrows(IllegalArgumentException.class, () -> + player.addMoney(new BigDecimal("-100")) + ); } /** @@ -165,9 +165,9 @@ void testAddNegativeAmountThrows() { */ @Test void testWithdrawNullAmountThrows() { - assertThrows(IllegalArgumentException.class, () -> - player.withdrawMoney(null) - ); + assertThrows(IllegalArgumentException.class, () -> + player.withdrawMoney(null) + ); } /** @@ -175,9 +175,9 @@ void testWithdrawNullAmountThrows() { */ @Test void testWithdrawNegativeAmountThrows() { - assertThrows(IllegalArgumentException.class, () -> - player.withdrawMoney(new BigDecimal("-100")) - ); + assertThrows(IllegalArgumentException.class, () -> + player.withdrawMoney(new BigDecimal("-100")) + ); } } diff --git a/src/test/java/PortfolioTest.java b/src/test/java/PortfolioTest.java index d55259d..359f3c5 100644 --- a/src/test/java/PortfolioTest.java +++ b/src/test/java/PortfolioTest.java @@ -1,4 +1,5 @@ import static org.junit.jupiter.api.Assertions.*; + import Model.Portfolio; import Model.Share; import Model.Stock; @@ -20,9 +21,9 @@ public class PortfolioTest { @BeforeEach void setUp() { - portfolio = new Portfolio(); - stock = new Stock("AAPL", "Apple", new BigDecimal("150")); - share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + portfolio = new Portfolio(); + stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); } // ---- Positive tests ---- @@ -32,9 +33,9 @@ void setUp() { */ @Test void testAddShare() { - boolean result = portfolio.addShare(share); - assertTrue(result); - assertTrue(portfolio.contains(share)); + boolean result = portfolio.addShare(share); + assertTrue(result); + assertTrue(portfolio.contains(share)); } /** @@ -42,13 +43,13 @@ void testAddShare() { */ @Test void testAddMultipleShares() { - Stock stock2 = new Stock("GOOGL", "Google", new BigDecimal("200")); - Share share2 = new Share(stock2, new BigDecimal("5"), new BigDecimal("190")); + Stock stock2 = new Stock("GOOGL", "Google", new BigDecimal("200")); + Share share2 = new Share(stock2, new BigDecimal("5"), new BigDecimal("190")); - portfolio.addShare(share); - portfolio.addShare(share2); + portfolio.addShare(share); + portfolio.addShare(share2); - assertEquals(2, portfolio.getShares().size()); + assertEquals(2, portfolio.getShares().size()); } /** @@ -56,10 +57,10 @@ void testAddMultipleShares() { */ @Test void testRemoveShare() { - portfolio.addShare(share); - boolean result = portfolio.removeShare(share); - assertTrue(result); - assertFalse(portfolio.contains(share)); + portfolio.addShare(share); + boolean result = portfolio.removeShare(share); + assertTrue(result); + assertFalse(portfolio.contains(share)); } /** @@ -67,8 +68,8 @@ void testRemoveShare() { */ @Test void testRemoveShareNotInPortfolioReturnsFalse() { - boolean result = portfolio.removeShare(share); - assertFalse(result); + boolean result = portfolio.removeShare(share); + assertFalse(result); } /** @@ -76,10 +77,10 @@ void testRemoveShareNotInPortfolioReturnsFalse() { */ @Test void testGetSharesReturnsAll() { - portfolio.addShare(share); - List shares = portfolio.getShares(); - assertEquals(1, shares.size()); - assertTrue(shares.contains(share)); + portfolio.addShare(share); + List shares = portfolio.getShares(); + assertEquals(1, shares.size()); + assertTrue(shares.contains(share)); } /** @@ -88,10 +89,10 @@ void testGetSharesReturnsAll() { */ @Test void testGetSharesIsDefensiveCopy() { - portfolio.addShare(share); - List copy = portfolio.getShares(); - copy.clear(); - assertEquals(1, portfolio.getShares().size()); + portfolio.addShare(share); + List copy = portfolio.getShares(); + copy.clear(); + assertEquals(1, portfolio.getShares().size()); } /** @@ -99,15 +100,15 @@ void testGetSharesIsDefensiveCopy() { */ @Test void testGetSharesBySymbol() { - Stock stock2 = new Stock("GOOGL", "Google", new BigDecimal("200")); - Share share2 = new Share(stock2, new BigDecimal("5"), new BigDecimal("190")); + Stock stock2 = new Stock("GOOGL", "Google", new BigDecimal("200")); + Share share2 = new Share(stock2, new BigDecimal("5"), new BigDecimal("190")); - portfolio.addShare(share); - portfolio.addShare(share2); + portfolio.addShare(share); + portfolio.addShare(share2); - List result = portfolio.getShares("AAPL"); - assertEquals(1, result.size()); - assertTrue(result.contains(share)); + List result = portfolio.getShares("AAPL"); + assertEquals(1, result.size()); + assertTrue(result.contains(share)); } /** @@ -115,9 +116,9 @@ void testGetSharesBySymbol() { */ @Test void testGetSharesBySymbolNoMatch() { - portfolio.addShare(share); - List result = portfolio.getShares("MSFT"); - assertTrue(result.isEmpty()); + portfolio.addShare(share); + List result = portfolio.getShares("MSFT"); + assertTrue(result.isEmpty()); } /** @@ -125,8 +126,8 @@ void testGetSharesBySymbolNoMatch() { */ @Test void testContainsReturnsTrueWhenPresent() { - portfolio.addShare(share); - assertTrue(portfolio.contains(share)); + portfolio.addShare(share); + assertTrue(portfolio.contains(share)); } /** @@ -134,7 +135,7 @@ void testContainsReturnsTrueWhenPresent() { */ @Test void testContainsReturnsFalseWhenAbsent() { - assertFalse(portfolio.contains(share)); + assertFalse(portfolio.contains(share)); } /** @@ -142,7 +143,7 @@ void testContainsReturnsFalseWhenAbsent() { */ @Test void testGetNetWorthEmptyPortfolio() { - assertEquals(BigDecimal.ZERO, portfolio.getNetWorth()); + assertEquals(BigDecimal.ZERO, portfolio.getNetWorth()); } /** @@ -150,9 +151,9 @@ void testGetNetWorthEmptyPortfolio() { */ @Test void testGetNetWorthWithShares() { - portfolio.addShare(share); - // net worth should be positive when portfolio has holdings - assertTrue(portfolio.getNetWorth().compareTo(BigDecimal.ZERO) > 0); + portfolio.addShare(share); + // net worth should be positive when portfolio has holdings + assertTrue(portfolio.getNetWorth().compareTo(BigDecimal.ZERO) > 0); } // ---- Negative tests ---- @@ -162,9 +163,9 @@ void testGetNetWorthWithShares() { */ @Test void testAddNullShareThrows() { - assertThrows(IllegalArgumentException.class, () -> - portfolio.addShare(null) - ); + assertThrows(IllegalArgumentException.class, () -> + portfolio.addShare(null) + ); } /** @@ -172,9 +173,9 @@ void testAddNullShareThrows() { */ @Test void testRemoveNullShareThrows() { - assertThrows(IllegalArgumentException.class, () -> - portfolio.removeShare(null) - ); + assertThrows(IllegalArgumentException.class, () -> + portfolio.removeShare(null) + ); } /** @@ -182,9 +183,9 @@ void testRemoveNullShareThrows() { */ @Test void testContainsNullShareThrows() { - assertThrows(IllegalArgumentException.class, () -> - portfolio.contains(null) - ); + assertThrows(IllegalArgumentException.class, () -> + portfolio.contains(null) + ); } /** @@ -192,9 +193,9 @@ void testContainsNullShareThrows() { */ @Test void testGetSharesByNullSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - portfolio.getShares((String) null) - ); + assertThrows(IllegalArgumentException.class, () -> + portfolio.getShares((String) null) + ); } /** @@ -202,8 +203,8 @@ void testGetSharesByNullSymbolThrows() { */ @Test void testGetSharesByBlankSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - portfolio.getShares(" ") - ); + assertThrows(IllegalArgumentException.class, () -> + portfolio.getShares(" ") + ); } } diff --git a/src/test/java/PurchaseTest.java b/src/test/java/PurchaseTest.java index 26d2dd9..de1c2ca 100644 --- a/src/test/java/PurchaseTest.java +++ b/src/test/java/PurchaseTest.java @@ -1,13 +1,12 @@ import static org.junit.jupiter.api.Assertions.*; -import java.math.BigDecimal; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; import Model.Player; import Model.Purchase; import Model.Share; import Model.Stock; +import java.math.BigDecimal; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** * Unit tests for the Purchase class. @@ -22,10 +21,10 @@ public class PurchaseTest { @BeforeEach void setUp() { - stock = new Stock("AAPL", "Apple", new BigDecimal("100")); - share = new Share(stock, new BigDecimal("20"), new BigDecimal("50")); - purchase = new Purchase(share, 1); - player = new Player("Jane", new BigDecimal("500000")); + stock = new Stock("AAPL", "Apple", new BigDecimal("100")); + share = new Share(stock, new BigDecimal("20"), new BigDecimal("50")); + purchase = new Purchase(share, 1); + player = new Player("Jane", new BigDecimal("500000")); } // ---- Positive tests ---- @@ -35,9 +34,9 @@ void setUp() { */ @Test void testCommitDeductsMoneyFromPlayer() { - BigDecimal before = player.getMoney(); - purchase.commit(player); - assertTrue(player.getMoney().compareTo(before) < 0); + BigDecimal before = player.getMoney(); + purchase.commit(player); + assertTrue(player.getMoney().compareTo(before) < 0); } /** @@ -45,8 +44,8 @@ void testCommitDeductsMoneyFromPlayer() { */ @Test void testCommitAddsShareToPortfolio() { - purchase.commit(player); - assertTrue(player.getPortfolio().contains(share)); + purchase.commit(player); + assertTrue(player.getPortfolio().contains(share)); } /** @@ -54,8 +53,8 @@ void testCommitAddsShareToPortfolio() { */ @Test void testCommitRecordedInArchive() { - purchase.commit(player); - assertTrue(player.getTransactionArchive().getAllTransactions().contains(purchase)); + purchase.commit(player); + assertTrue(player.getTransactionArchive().getAllTransactions().contains(purchase)); } /** @@ -63,8 +62,8 @@ void testCommitRecordedInArchive() { */ @Test void testCommitSetsCommittedFlag() { - purchase.commit(player); - assertTrue(purchase.isCommitted()); + purchase.commit(player); + assertTrue(purchase.isCommitted()); } /** @@ -72,7 +71,7 @@ void testCommitSetsCommittedFlag() { */ @Test void testGetShareReturnsCorrectShare() { - assertEquals(share, purchase.getShare()); + assertEquals(share, purchase.getShare()); } /** @@ -80,7 +79,7 @@ void testGetShareReturnsCorrectShare() { */ @Test void testGetWeekReturnsCorrectWeek() { - assertEquals(1, purchase.getWeek()); + assertEquals(1, purchase.getWeek()); } // ---- Negative tests ---- @@ -90,9 +89,9 @@ void testGetWeekReturnsCorrectWeek() { */ @Test void testCommitNullPlayerThrows() { - assertThrows(IllegalArgumentException.class, () -> - purchase.commit(null) - ); + assertThrows(IllegalArgumentException.class, () -> + purchase.commit(null) + ); } /** @@ -100,10 +99,10 @@ void testCommitNullPlayerThrows() { */ @Test void testCommitInsufficientFundsThrows() { - Player poorPlayer = new Player("Broke", new BigDecimal("1")); - assertThrows(IllegalStateException.class, () -> - purchase.commit(poorPlayer) - ); + Player poorPlayer = new Player("Broke", new BigDecimal("1")); + assertThrows(IllegalStateException.class, () -> + purchase.commit(poorPlayer) + ); } /** @@ -111,10 +110,10 @@ void testCommitInsufficientFundsThrows() { */ @Test void testCommitAlreadyCommittedThrows() { - purchase.commit(player); - assertThrows(IllegalStateException.class, () -> - purchase.commit(player) - ); + purchase.commit(player); + assertThrows(IllegalStateException.class, () -> + purchase.commit(player) + ); } /** @@ -122,9 +121,9 @@ void testCommitAlreadyCommittedThrows() { */ @Test void testConstructorWeekZeroThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Purchase(share, 0) - ); + assertThrows(IllegalArgumentException.class, () -> + new Purchase(share, 0) + ); } /** @@ -132,9 +131,9 @@ void testConstructorWeekZeroThrows() { */ @Test void testConstructorNegativeWeekThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Purchase(share, -5) - ); + assertThrows(IllegalArgumentException.class, () -> + new Purchase(share, -5) + ); } } diff --git a/src/test/java/SaleTest.java b/src/test/java/SaleTest.java index 39d5516..31efe4d 100644 --- a/src/test/java/SaleTest.java +++ b/src/test/java/SaleTest.java @@ -1,13 +1,13 @@ -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; import Model.Player; import Model.Sale; import Model.Share; import Model.Stock; -import static org.junit.jupiter.api.Assertions.*; - import java.math.BigDecimal; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + /** * Unit tests for the Sale class. @@ -22,11 +22,11 @@ public class SaleTest { @BeforeEach void setUp() { - stock = new Stock("AAPL", "Apple", new BigDecimal("100")); - share = new Share(stock, new BigDecimal("20"), new BigDecimal("80")); - sale = new Sale(share, 1); - player = new Player("Jane", new BigDecimal("500")); - player.getPortfolio().addShare(share); + stock = new Stock("AAPL", "Apple", new BigDecimal("100")); + share = new Share(stock, new BigDecimal("20"), new BigDecimal("80")); + sale = new Sale(share, 1); + player = new Player("Jane", new BigDecimal("500")); + player.getPortfolio().addShare(share); } // ---- Positive tests ---- @@ -36,9 +36,9 @@ void setUp() { */ @Test void testCommitAddsMoney() { - BigDecimal before = player.getMoney(); - sale.commit(player); - assertTrue(player.getMoney().compareTo(before) > 0); + BigDecimal before = player.getMoney(); + sale.commit(player); + assertTrue(player.getMoney().compareTo(before) > 0); } /** @@ -46,8 +46,8 @@ void testCommitAddsMoney() { */ @Test void testCommitRemovesShareFromPortfolio() { - sale.commit(player); - assertFalse(player.getPortfolio().contains(share)); + sale.commit(player); + assertFalse(player.getPortfolio().contains(share)); } /** @@ -55,8 +55,8 @@ void testCommitRemovesShareFromPortfolio() { */ @Test void testCommitRecordedInArchive() { - sale.commit(player); - assertTrue(player.getTransactionArchive().getAllTransactions().contains(sale)); + sale.commit(player); + assertTrue(player.getTransactionArchive().getAllTransactions().contains(sale)); } /** @@ -64,8 +64,8 @@ void testCommitRecordedInArchive() { */ @Test void testCommitSetsCommittedFlag() { - sale.commit(player); - assertTrue(sale.isCommitted()); + sale.commit(player); + assertTrue(sale.isCommitted()); } /** @@ -73,7 +73,7 @@ void testCommitSetsCommittedFlag() { */ @Test void testGetShareReturnsCorrectShare() { - assertEquals(share, sale.getShare()); + assertEquals(share, sale.getShare()); } /** @@ -81,7 +81,7 @@ void testGetShareReturnsCorrectShare() { */ @Test void testGetWeekReturnsCorrectWeek() { - assertEquals(1, sale.getWeek()); + assertEquals(1, sale.getWeek()); } // ---- Negative tests ---- @@ -91,9 +91,9 @@ void testGetWeekReturnsCorrectWeek() { */ @Test void testCommitNullPlayerThrows() { - assertThrows(IllegalArgumentException.class, () -> - sale.commit(null) - ); + assertThrows(IllegalArgumentException.class, () -> + sale.commit(null) + ); } /** @@ -101,10 +101,10 @@ void testCommitNullPlayerThrows() { */ @Test void testCommitAlreadyCommittedThrows() { - sale.commit(player); - assertThrows(IllegalStateException.class, () -> - sale.commit(player) - ); + sale.commit(player); + assertThrows(IllegalStateException.class, () -> + sale.commit(player) + ); } /** @@ -112,10 +112,10 @@ void testCommitAlreadyCommittedThrows() { */ @Test void testCommitShareNotInPortfolioThrows() { - Player otherPlayer = new Player("Bob", new BigDecimal("500")); - assertThrows(IllegalStateException.class, () -> - sale.commit(otherPlayer) - ); + Player otherPlayer = new Player("Bob", new BigDecimal("500")); + assertThrows(IllegalStateException.class, () -> + sale.commit(otherPlayer) + ); } /** @@ -123,9 +123,9 @@ void testCommitShareNotInPortfolioThrows() { */ @Test void testConstructorWeekZeroThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Sale(share, 0) - ); + assertThrows(IllegalArgumentException.class, () -> + new Sale(share, 0) + ); } /** @@ -133,9 +133,9 @@ void testConstructorWeekZeroThrows() { */ @Test void testConstructorNegativeWeekThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Sale(share, -3) - ); + assertThrows(IllegalArgumentException.class, () -> + new Sale(share, -3) + ); } } diff --git a/src/test/java/ShareTest.java b/src/test/java/ShareTest.java index af8d2cc..37b5422 100644 --- a/src/test/java/ShareTest.java +++ b/src/test/java/ShareTest.java @@ -1,11 +1,12 @@ import static org.junit.jupiter.api.Assertions.*; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - import Model.Share; import Model.Stock; import java.math.BigDecimal; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + + /** * Unit tests for the Share class. @@ -17,7 +18,7 @@ public class ShareTest { @BeforeEach void setUp() { - stock = new Stock("AAPL", "Apple", new BigDecimal("150")); + stock = new Stock("AAPL", "Apple", new BigDecimal("150")); } // ---- Positive tests ---- @@ -27,8 +28,8 @@ void setUp() { */ @Test void testShareConstructorNotNull() { - Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); - assertNotNull(share); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + assertNotNull(share); } /** @@ -36,8 +37,8 @@ void testShareConstructorNotNull() { */ @Test void testGetStock() { - Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); - assertEquals(stock, share.getStock()); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + assertEquals(stock, share.getStock()); } /** @@ -45,8 +46,8 @@ void testGetStock() { */ @Test void testGetQuantity() { - Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); - assertEquals(new BigDecimal("10"), share.getQuantity()); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + assertEquals(new BigDecimal("10"), share.getQuantity()); } /** @@ -54,8 +55,8 @@ void testGetQuantity() { */ @Test void testGetPurchasePrice() { - Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); - assertEquals(new BigDecimal("140"), share.getPurchasePrice()); + Share share = new Share(stock, new BigDecimal("10"), new BigDecimal("140")); + assertEquals(new BigDecimal("140"), share.getPurchasePrice()); } /** @@ -63,9 +64,9 @@ void testGetPurchasePrice() { */ @Test 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()); + // 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()); } // ---- Negative tests ---- @@ -75,9 +76,9 @@ void testPurchasePriceZeroAllowed() { */ @Test void testNullStockThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(null, new BigDecimal("10"), new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(null, new BigDecimal("10"), new BigDecimal("100")) + ); } /** @@ -85,9 +86,9 @@ void testNullStockThrows() { */ @Test void testNullQuantityThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(stock, null, new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, null, new BigDecimal("100")) + ); } /** @@ -95,9 +96,9 @@ void testNullQuantityThrows() { */ @Test void testZeroQuantityThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(stock, BigDecimal.ZERO, new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, BigDecimal.ZERO, new BigDecimal("100")) + ); } /** @@ -105,9 +106,9 @@ void testZeroQuantityThrows() { */ @Test void testNegativeQuantityThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(stock, new BigDecimal("-5"), new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("-5"), new BigDecimal("100")) + ); } /** @@ -115,9 +116,9 @@ void testNegativeQuantityThrows() { */ @Test void testNullPurchasePriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(stock, new BigDecimal("10"), null) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("10"), null) + ); } /** @@ -125,9 +126,9 @@ void testNullPurchasePriceThrows() { */ @Test void testNegativePurchasePriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Share(stock, new BigDecimal("10"), new BigDecimal("-50")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Share(stock, new BigDecimal("10"), new BigDecimal("-50")) + ); } } diff --git a/src/test/java/StockTest.java b/src/test/java/StockTest.java index 5addd52..c07c75b 100644 --- a/src/test/java/StockTest.java +++ b/src/test/java/StockTest.java @@ -17,7 +17,7 @@ public class StockTest { @BeforeEach void setUp() { - stock = new Stock("AAPL", "Apple", new BigDecimal("1000")); + stock = new Stock("AAPL", "Apple", new BigDecimal("1000")); } // ---- Positive tests ---- @@ -27,7 +27,7 @@ void setUp() { */ @Test void testGetSymbol() { - assertEquals("AAPL", stock.getSymbol()); + assertEquals("AAPL", stock.getSymbol()); } /** @@ -35,7 +35,7 @@ void testGetSymbol() { */ @Test void testGetCompany() { - assertEquals("Apple", stock.getCompany()); + assertEquals("Apple", stock.getCompany()); } /** @@ -43,7 +43,7 @@ void testGetCompany() { */ @Test void testGetSalesPrice() { - assertEquals(new BigDecimal("1000"), stock.getSalesPrice()); + assertEquals(new BigDecimal("1000"), stock.getSalesPrice()); } /** @@ -51,8 +51,8 @@ void testGetSalesPrice() { */ @Test void testGetSalesPriceZero() { - Stock zeroStock = new Stock("ZERO", "ZeroCorp", new BigDecimal("0")); - assertEquals(new BigDecimal("0"), zeroStock.getSalesPrice()); + Stock zeroStock = new Stock("ZERO", "ZeroCorp", new BigDecimal("0")); + assertEquals(new BigDecimal("0"), zeroStock.getSalesPrice()); } /** @@ -60,8 +60,8 @@ void testGetSalesPriceZero() { */ @Test void testAddNewSalesPrice() { - stock.addNewSalesPrice(new BigDecimal("1200")); - assertEquals(new BigDecimal("1200"), stock.getSalesPrice()); + stock.addNewSalesPrice(new BigDecimal("1200")); + assertEquals(new BigDecimal("1200"), stock.getSalesPrice()); } /** @@ -69,8 +69,8 @@ void testAddNewSalesPrice() { */ @Test void testAddNewSalesPriceZero() { - stock.addNewSalesPrice(new BigDecimal("0")); - assertEquals(new BigDecimal("0"), stock.getSalesPrice()); + stock.addNewSalesPrice(new BigDecimal("0")); + assertEquals(new BigDecimal("0"), stock.getSalesPrice()); } /** @@ -78,9 +78,9 @@ void testAddNewSalesPriceZero() { */ @Test void testGetHistoricalPricesInitial() { - List history = stock.getHistoricalPrices(); - assertEquals(1, history.size()); - assertEquals(new BigDecimal("1000"), history.get(0)); + List history = stock.getHistoricalPrices(); + assertEquals(1, history.size()); + assertEquals(new BigDecimal("1000"), history.get(0)); } /** @@ -88,9 +88,9 @@ void testGetHistoricalPricesInitial() { */ @Test void testGetHistoricalPricesAfterUpdates() { - stock.addNewSalesPrice(new BigDecimal("1100")); - stock.addNewSalesPrice(new BigDecimal("1200")); - assertEquals(3, stock.getHistoricalPrices().size()); + stock.addNewSalesPrice(new BigDecimal("1100")); + stock.addNewSalesPrice(new BigDecimal("1200")); + assertEquals(3, stock.getHistoricalPrices().size()); } /** @@ -98,9 +98,9 @@ void testGetHistoricalPricesAfterUpdates() { */ @Test void testGetHighestPrice() { - stock.addNewSalesPrice(new BigDecimal("1500")); - stock.addNewSalesPrice(new BigDecimal("800")); - assertEquals(new BigDecimal("1500"), stock.getHighestPrice()); + stock.addNewSalesPrice(new BigDecimal("1500")); + stock.addNewSalesPrice(new BigDecimal("800")); + assertEquals(new BigDecimal("1500"), stock.getHighestPrice()); } /** @@ -108,9 +108,9 @@ void testGetHighestPrice() { */ @Test void testGetLowestPrice() { - stock.addNewSalesPrice(new BigDecimal("1500")); - stock.addNewSalesPrice(new BigDecimal("800")); - assertEquals(new BigDecimal("800"), stock.getLowestPrice()); + stock.addNewSalesPrice(new BigDecimal("1500")); + stock.addNewSalesPrice(new BigDecimal("800")); + assertEquals(new BigDecimal("800"), stock.getLowestPrice()); } /** @@ -118,8 +118,8 @@ void testGetLowestPrice() { */ @Test void testGetLatestPriceChangePositive() { - stock.addNewSalesPrice(new BigDecimal("1100")); - assertEquals(new BigDecimal("100"), stock.getLatestPriceChange()); + stock.addNewSalesPrice(new BigDecimal("1100")); + assertEquals(new BigDecimal("100"), stock.getLatestPriceChange()); } /** @@ -127,8 +127,8 @@ void testGetLatestPriceChangePositive() { */ @Test void testGetLatestPriceChangeNegative() { - stock.addNewSalesPrice(new BigDecimal("900")); - assertEquals(new BigDecimal("-100"), stock.getLatestPriceChange()); + stock.addNewSalesPrice(new BigDecimal("900")); + assertEquals(new BigDecimal("-100"), stock.getLatestPriceChange()); } /** @@ -136,7 +136,7 @@ void testGetLatestPriceChangeNegative() { */ @Test void testGetLatestPriceChangeOnlyOnePrice() { - assertEquals(BigDecimal.ZERO, stock.getLatestPriceChange()); + assertEquals(BigDecimal.ZERO, stock.getLatestPriceChange()); } /** @@ -144,9 +144,9 @@ void testGetLatestPriceChangeOnlyOnePrice() { */ @Test void testHistoricalPricesIsDefensiveCopy() { - List history = stock.getHistoricalPrices(); - history.add(new BigDecimal("9999")); - assertEquals(1, stock.getHistoricalPrices().size()); + List history = stock.getHistoricalPrices(); + history.add(new BigDecimal("9999")); + assertEquals(1, stock.getHistoricalPrices().size()); } // ---- Negative tests ---- @@ -156,9 +156,9 @@ void testHistoricalPricesIsDefensiveCopy() { */ @Test void testNullSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock(null, "Apple", new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock(null, "Apple", new BigDecimal("100")) + ); } /** @@ -166,9 +166,9 @@ void testNullSymbolThrows() { */ @Test void testBlankSymbolThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock(" ", "Apple", new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock(" ", "Apple", new BigDecimal("100")) + ); } /** @@ -176,9 +176,9 @@ void testBlankSymbolThrows() { */ @Test void testNullCompanyThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock("AAPL", null, new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock("AAPL", null, new BigDecimal("100")) + ); } /** @@ -186,9 +186,9 @@ void testNullCompanyThrows() { */ @Test void testBlankCompanyThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock("AAPL", " ", new BigDecimal("100")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock("AAPL", " ", new BigDecimal("100")) + ); } /** @@ -196,9 +196,9 @@ void testBlankCompanyThrows() { */ @Test void testNullInitialPriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock("AAPL", "Apple", null) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock("AAPL", "Apple", null) + ); } /** @@ -206,9 +206,9 @@ void testNullInitialPriceThrows() { */ @Test void testNegativeInitialPriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - new Stock("AAPL", "Apple", new BigDecimal("-1")) - ); + assertThrows(IllegalArgumentException.class, () -> + new Stock("AAPL", "Apple", new BigDecimal("-1")) + ); } /** @@ -216,9 +216,9 @@ void testNegativeInitialPriceThrows() { */ @Test void testAddNullPriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - stock.addNewSalesPrice(null) - ); + assertThrows(IllegalArgumentException.class, () -> + stock.addNewSalesPrice(null) + ); } /** @@ -226,9 +226,9 @@ void testAddNullPriceThrows() { */ @Test void testAddNegativePriceThrows() { - assertThrows(IllegalArgumentException.class, () -> - stock.addNewSalesPrice(new BigDecimal("-10")) - ); + assertThrows(IllegalArgumentException.class, () -> + stock.addNewSalesPrice(new BigDecimal("-10")) + ); } } diff --git a/src/test/java/TransactionArchiveTest.java b/src/test/java/TransactionArchiveTest.java index c3a1fa1..df7ed0c 100644 --- a/src/test/java/TransactionArchiveTest.java +++ b/src/test/java/TransactionArchiveTest.java @@ -25,11 +25,11 @@ public class TransactionArchiveTest { @BeforeEach void setUp() { - archive = new TransactionArchive(); - stock = new Stock("AAPL", "Apple", new BigDecimal("100")); - share = new Share(stock, new BigDecimal("10"), new BigDecimal("90")); - purchase = new Purchase(share, 1); - sale = new Sale(share, 2); + archive = new TransactionArchive(); + stock = new Stock("AAPL", "Apple", new BigDecimal("100")); + share = new Share(stock, new BigDecimal("10"), new BigDecimal("90")); + purchase = new Purchase(share, 1); + sale = new Sale(share, 2); } // ---- Positive tests ---- @@ -39,7 +39,7 @@ void setUp() { */ @Test void testIsEmptyOnCreation() { - assertTrue(archive.isEmpty()); + assertTrue(archive.isEmpty()); } /** @@ -47,8 +47,8 @@ void testIsEmptyOnCreation() { */ @Test void testIsEmptyAfterAdd() { - archive.add(purchase); - assertFalse(archive.isEmpty()); + archive.add(purchase); + assertFalse(archive.isEmpty()); } /** @@ -56,7 +56,7 @@ void testIsEmptyAfterAdd() { */ @Test void testAddReturnsTrue() { - assertTrue(archive.add(purchase)); + assertTrue(archive.add(purchase)); } /** @@ -64,9 +64,9 @@ void testAddReturnsTrue() { */ @Test void testGetAllTransactions() { - archive.add(purchase); - archive.add(sale); - assertEquals(2, archive.getAllTransactions().size()); + archive.add(purchase); + archive.add(sale); + assertEquals(2, archive.getAllTransactions().size()); } /** @@ -74,10 +74,10 @@ void testGetAllTransactions() { */ @Test void testGetAllTransactionsIsDefensiveCopy() { - archive.add(purchase); - List copy = archive.getAllTransactions(); - copy.clear(); - assertEquals(1, archive.getAllTransactions().size()); + archive.add(purchase); + List copy = archive.getAllTransactions(); + copy.clear(); + assertEquals(1, archive.getAllTransactions().size()); } /** @@ -85,12 +85,12 @@ void testGetAllTransactionsIsDefensiveCopy() { */ @Test void testGetTransactionsByWeek() { - archive.add(purchase); // week 1 - archive.add(sale); // week 2 + archive.add(purchase); // week 1 + archive.add(sale); // week 2 - List week1 = archive.getTransactions(1); - assertEquals(1, week1.size()); - assertTrue(week1.contains(purchase)); + List week1 = archive.getTransactions(1); + assertEquals(1, week1.size()); + assertTrue(week1.contains(purchase)); } /** @@ -98,8 +98,8 @@ void testGetTransactionsByWeek() { */ @Test void testGetTransactionsByWeekNoMatch() { - archive.add(purchase); // week 1 - assertTrue(archive.getTransactions(99).isEmpty()); + archive.add(purchase); // week 1 + assertTrue(archive.getTransactions(99).isEmpty()); } /** @@ -107,12 +107,12 @@ void testGetTransactionsByWeekNoMatch() { */ @Test void testGetPurchaseByWeek() { - archive.add(purchase); // week 1 - archive.add(sale); // week 2 + archive.add(purchase); // week 1 + archive.add(sale); // week 2 - List purchases = archive.getPurchase(1); - assertEquals(1, purchases.size()); - assertTrue(purchases.contains(purchase)); + List purchases = archive.getPurchase(1); + assertEquals(1, purchases.size()); + assertTrue(purchases.contains(purchase)); } /** @@ -120,11 +120,11 @@ void testGetPurchaseByWeek() { */ @Test void testGetPurchaseByWeekExcludesSales() { - // Add a sale at week 1 — should not appear in getPurchase(1) - Sale saleWeek1 = new Sale(share, 1); - archive.add(saleWeek1); + // Add a sale at week 1 — should not appear in getPurchase(1) + Sale saleWeek1 = new Sale(share, 1); + archive.add(saleWeek1); - assertTrue(archive.getPurchase(1).isEmpty()); + assertTrue(archive.getPurchase(1).isEmpty()); } /** @@ -132,12 +132,12 @@ void testGetPurchaseByWeekExcludesSales() { */ @Test void testGetSaleByWeek() { - archive.add(purchase); // week 1 - archive.add(sale); // week 2 + archive.add(purchase); // week 1 + archive.add(sale); // week 2 - List sales = archive.getSale(2); - assertEquals(1, sales.size()); - assertTrue(sales.contains(sale)); + List sales = archive.getSale(2); + assertEquals(1, sales.size()); + assertTrue(sales.contains(sale)); } /** @@ -145,11 +145,11 @@ void testGetSaleByWeek() { */ @Test void testGetSaleByWeekExcludesPurchases() { - // Add a purchase at week 2 — should not appear in getSale(2) - Purchase purchaseWeek2 = new Purchase(share, 2); - archive.add(purchaseWeek2); + // Add a purchase at week 2 — should not appear in getSale(2) + Purchase purchaseWeek2 = new Purchase(share, 2); + archive.add(purchaseWeek2); - assertTrue(archive.getSale(2).isEmpty()); + assertTrue(archive.getSale(2).isEmpty()); } /** @@ -157,7 +157,7 @@ void testGetSaleByWeekExcludesPurchases() { */ @Test void testCountDistinctWeeksEmpty() { - assertEquals(0, archive.countDistinctWeeks()); + assertEquals(0, archive.countDistinctWeeks()); } /** @@ -165,10 +165,10 @@ void testCountDistinctWeeksEmpty() { */ @Test void testCountDistinctWeeksMultipleTransactionsSameWeek() { - Purchase purchase2 = new Purchase(share, 1); - archive.add(purchase); - archive.add(purchase2); - assertEquals(1, archive.countDistinctWeeks()); + Purchase purchase2 = new Purchase(share, 1); + archive.add(purchase); + archive.add(purchase2); + assertEquals(1, archive.countDistinctWeeks()); } /** @@ -176,9 +176,9 @@ void testCountDistinctWeeksMultipleTransactionsSameWeek() { */ @Test void testCountDistinctWeeksAcrossWeeks() { - archive.add(purchase); // week 1 - archive.add(sale); // week 2 - assertEquals(2, archive.countDistinctWeeks()); + archive.add(purchase); // week 1 + archive.add(sale); // week 2 + assertEquals(2, archive.countDistinctWeeks()); } // ---- Negative tests ---- @@ -188,8 +188,8 @@ void testCountDistinctWeeksAcrossWeeks() { */ @Test void testAddNullThrows() { - assertThrows(IllegalArgumentException.class, () -> - archive.add(null) + assertThrows(IllegalArgumentException.class, () -> + archive.add(null) ); } } diff --git a/target/test-classes/ExchangeTest.class b/target/test-classes/ExchangeTest.class index c9e32fd..c301cc2 100644 Binary files a/target/test-classes/ExchangeTest.class and b/target/test-classes/ExchangeTest.class differ diff --git a/target/test-classes/PortfolioTest.class b/target/test-classes/PortfolioTest.class index 6b62be5..6929863 100644 Binary files a/target/test-classes/PortfolioTest.class and b/target/test-classes/PortfolioTest.class differ diff --git a/target/test-classes/ShareTest.class b/target/test-classes/ShareTest.class index 959b07a..bdbf4a6 100644 Binary files a/target/test-classes/ShareTest.class and b/target/test-classes/ShareTest.class differ diff --git a/target/test-classes/StockTest.class b/target/test-classes/StockTest.class index 086bf5b..c71a54d 100644 Binary files a/target/test-classes/StockTest.class and b/target/test-classes/StockTest.class differ