diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Sale.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Sale.java index e69de29..8fcf55b 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Sale.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Sale.java @@ -0,0 +1,31 @@ +package edu.ntnu.idi.idatt2003.g40.mappe; + +/** + * Sale represents sales the player commits. + * + *

Extends {@link Transaction}

+ * + * */ +public class Sale extends Transaction { + + /** + * Constructor. + * + * @param share the {@link Share} object to purchase. + * @param week the week to purchase during. + * @param calculator the {@link TransactionCalculator} object to calculate this purchase. + * */ + public Sale(final Share share, final int week, final TransactionCalculator calculator) { + super(share, week, calculator); + } + + /** + * Commits the purchase. + * + * @param player the {@link Player} object performing the purchase. + * */ + @Override + public void commit(final Player player) { + commited = true; + } +} diff --git a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Transaction.java b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Transaction.java index 4030335..78156de 100644 --- a/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Transaction.java +++ b/src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Transaction.java @@ -12,7 +12,7 @@ public abstract class Transaction { private final TransactionCalculator calculator; - private boolean commited = false; + protected boolean commited = false; /** * Creates a new {@code Transaction} with a share, week and calculator. @@ -62,7 +62,5 @@ public boolean isCommited() { } /** Commits the transaction. */ - public void commit() { - commited = true; - } + public abstract void commit(Player player); } diff --git a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleTest.java b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleTest.java index a65d41b..12f14f7 100644 --- a/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleTest.java +++ b/src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleTest.java @@ -1,3 +1,36 @@ -public class SaleTest { - +package edu.ntnu.idi.idatt2003.g40.mappe; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.math.BigDecimal; +import org.junit.jupiter.api.Test; + +/** + * Test class for {@link Sale}. + * */ +class SaleTest { + + Stock testStock = new Stock("AAPL", "Apple Inc.", new BigDecimal("100.00")); + Share testShare = new Share(testStock, new BigDecimal("10"), new BigDecimal("10")); + SaleCalculator testSaleCalculator = new SaleCalculator(testShare); + Player testPlayer = new Player("TestName", new BigDecimal("1000.00")); + + @Test + void constructor_sets_values() { + Sale sale = new Sale(testShare, 1, testSaleCalculator); + + assertEquals(testShare, sale.getShare()); + assertEquals(1, sale.getWeek()); + assertEquals(testSaleCalculator, sale.getCalculator()); + } + + @Test + void commit_method_sets_commit_to_true() { + Sale sale = new Sale(testShare, 1, testSaleCalculator); + + sale.commit(testPlayer); + + assertTrue(sale.isCommited()); + } }