Skip to content

Commit

Permalink
Merge pull request #49 from Team-40-IDATT2003/enhancement/30-sale-class
Browse files Browse the repository at this point in the history
Feat: Implemented Sale class as well as unit tests
  • Loading branch information
etsorens authored Mar 11, 2026
2 parents 9f6e12b + 1decd40 commit 7eec183
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 6 deletions.
31 changes: 31 additions & 0 deletions src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Sale.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package edu.ntnu.idi.idatt2003.g40.mappe;

/**
* Sale represents sales the player commits.
*
* <p>Extends {@link Transaction}</p>
*
* */
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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -62,7 +62,5 @@ public boolean isCommited() {
}

/** Commits the transaction. */
public void commit() {
commited = true;
}
public abstract void commit(Player player);
}
37 changes: 35 additions & 2 deletions src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/SaleTest.java
Original file line number Diff line number Diff line change
@@ -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());
}
}

0 comments on commit 7eec183

Please sign in to comment.