From 54bc98cefa569519befcbe1327c6cba345c7c5cd Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 6 Mar 2026 13:55:58 +0100 Subject: [PATCH] test: Adding SaleTest --- src/test/java/millions/SaleTest.java | 29 +++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/test/java/millions/SaleTest.java b/src/test/java/millions/SaleTest.java index b808f7a..a9202b7 100644 --- a/src/test/java/millions/SaleTest.java +++ b/src/test/java/millions/SaleTest.java @@ -2,4 +2,31 @@ import static org.junit.jupiter.api.Assertions.*; -class SaleTest {} +import java.math.BigDecimal; +import org.junit.jupiter.api.Test; + +class SaleTest { + + @Test + public void testHappyPath() { + Stock stock = new Stock("TestStock", "TST", BigDecimal.valueOf(10)); + Share share = new Share(stock, 2, BigDecimal.valueOf(10)); + Player player = new Player("TestPlayer", BigDecimal.valueOf(100)); + player.getPortfolio().addShare(share); + Sale sale = new Sale(share, 1); + sale.commit(player); + assertTrue(sale.isCommitted()); + + assertEquals(120, player.getMoney().intValue()); + assertFalse(player.getPortfolio().getShares().contains(share)); + } + + @Test + public void testNullsAndInvalid() { + Stock stock = new Stock("TestStock", "TST", BigDecimal.valueOf(10)); + Share share = new Share(stock, 2, BigDecimal.valueOf(10)); + Player player = new Player("TestPlayer", BigDecimal.valueOf(100)); + Sale sale = new Sale(share, 1); + assertThrows(IllegalStateException.class, () -> sale.commit(player)); + } +}