Skip to content

Commit

Permalink
Merge pull request #48 from Team-40-IDATT2003/28-purchase-class
Browse files Browse the repository at this point in the history
Feat: Purchase class, updated Transaction, and unit test for Purchase class
  • Loading branch information
etsorens authored Mar 11, 2026
2 parents 7eec183 + a5e46be commit c8d8043
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
31 changes: 31 additions & 0 deletions src/main/java/edu/ntnu/idi/idatt2003/g40/mappe/Purchase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package edu.ntnu.idi.idatt2003.g40.mappe;

/**
* Purchase represents purchases the player commits.
*
* <p>Extends {@link Transaction}</p>
*
* */
public class Purchase 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 Purchase(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;
}
}
37 changes: 35 additions & 2 deletions src/test/java/edu/ntnu/idi/idatt2003/g40/mappe/PurchaseTest.java
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
public class PurchaseTest {

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 Purchase}.
* */
class PurchaseTest {

Stock testStock = new Stock("AAPL", "Apple Inc.", new BigDecimal("100.00"));
Share testShare = new Share(testStock, new BigDecimal("10"), new BigDecimal("10"));
PurchaseCalculator testPurchaseCalculator = new PurchaseCalculator(testShare);
Player testPlayer = new Player("TestName", new BigDecimal("1000.00"));

@Test
void constructor_sets_values() {
Purchase purchase = new Purchase(testShare, 1, testPurchaseCalculator);

assertEquals(testShare, purchase.getShare());
assertEquals(1, purchase.getWeek());
assertEquals(testPurchaseCalculator, purchase.getCalculator());
}

@Test
void commit_method_sets_commit_to_true() {
Purchase purchase = new Purchase(testShare, 1, testPurchaseCalculator);

purchase.commit(testPlayer);

assertTrue(purchase.isCommited());
}
}

0 comments on commit c8d8043

Please sign in to comment.