Skip to content

Commit

Permalink
test: adding PortfolioTest
Browse files Browse the repository at this point in the history
  • Loading branch information
martin committed Mar 6, 2026
1 parent e81d68b commit 13001ef
Showing 1 changed file with 60 additions and 1 deletion.
61 changes: 60 additions & 1 deletion src/test/java/millions/PortfolioTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,63 @@

import static org.junit.jupiter.api.Assertions.*;

class PortfolioTest {}
import java.math.BigDecimal;
import org.junit.jupiter.api.Test;

class PortfolioTest {

@Test
public void happyPath() {
Portfolio portfolio = new Portfolio();
Stock stock = new Stock("PEAR", "Pear Inc.", BigDecimal.valueOf(300));
Share share = new Share(stock, 10, BigDecimal.valueOf(300));

assertTrue(portfolio.addShare(share));
assertTrue(portfolio.contains(share));
assertEquals(1, portfolio.getShares().size());
assertEquals(share, portfolio.getShares().get(0));

assertTrue(portfolio.removeShare(share));
assertFalse(portfolio.contains(share));
assertTrue(portfolio.getShares().isEmpty());
}

@Test
public void testGettersAndSetters() {
Portfolio portfolio = new Portfolio();
Stock stock1 = new Stock("PEAR", "Pear Inc.", BigDecimal.valueOf(300));
Stock stock2 = new Stock("DOGL", "DOOGLE Inc.", BigDecimal.valueOf(200.00));
Share share1 = new Share(stock1, 10, BigDecimal.valueOf(300));
Share share2 = new Share(stock2, 5, BigDecimal.valueOf(200));

portfolio.addShare(share1);
portfolio.addShare(share2);

assertEquals(2, portfolio.getShares().size());
assertTrue(portfolio.getShares().contains(share1));
assertTrue(portfolio.getShares().contains(share2));

assertEquals(1, portfolio.getShares("PEAR").size());
assertTrue(portfolio.getShares("PEAR").contains(share1));
assertFalse(portfolio.getShares("PEAR").contains(share2));

assertEquals(1, portfolio.getShares("DOGL").size());
assertFalse(portfolio.getShares("DOGL").contains(share1));
assertTrue(portfolio.getShares("DOGL").contains(share2));

assertTrue(portfolio.getShares("XYZ").isEmpty());

portfolio.removeShare(share1);
assertEquals(1, portfolio.getShares().size());
}

@Test
public void testNullsAndInvalid() {
Stock stock1 = new Stock("PEAR", "Pear Inc.", BigDecimal.valueOf(300));
Share share1 = new Share(stock1, 10, BigDecimal.valueOf(300));
Portfolio portfolio = new Portfolio();
assertFalse(portfolio.removeShare(null));
assertFalse(portfolio.contains(null));
assertFalse(portfolio.removeShare(share1));
}
}

0 comments on commit 13001ef

Please sign in to comment.