Skip to content

Added PurchaseCalculatorTest & SaleCalculatorTest #39

Merged
merged 1 commit into from
Feb 25, 2026
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,5 @@ public boolean isCommitted() {
return committed;
}

public void commit(Player player) {

}

public void commit(Player player) {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package edu.ntnu.idi.idatt2003.gruppe42.Model.Calculator;

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

import edu.ntnu.idi.idatt2003.gruppe42.Model.Share;
import edu.ntnu.idi.idatt2003.gruppe42.Model.Stock;
import java.math.BigDecimal;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class PurchaseCalculatorTest {
private PurchaseCalculator calculator;
private BigDecimal purchasePrice;
private BigDecimal quantity;

@BeforeEach
void setUp() {
// Setup test data
purchasePrice = new BigDecimal("100");
quantity = new BigDecimal("10");
Stock stock = new Stock("AAPL", "Apple Inc.", new BigDecimal("150"));
Share share = new Share(stock, quantity, purchasePrice);

calculator = new PurchaseCalculator(share);
}

@Test
void testCalculateGross() {
/**
* Gross = Sales Price * Quantity
* 1000 = 100 * 10
*/
BigDecimal expectedGross = new BigDecimal("1000");
assertEquals(0, expectedGross.compareTo(calculator.calculateGross()),
"Gross should be purchasePrice * quantity");
}

@Test
void testCalculateCommission() {
/**
* Commission = Gross * Commission Rate (1%)
* Commission = 1000 * 0.01 = 10
*/
BigDecimal expectedCommission = new BigDecimal("10");
assertEquals(0, expectedCommission.compareTo(calculator.calculateCommission()),
"Commission should be 1% of Gross");
}

@Test
void testCalculateTax() {
/**
* Purchase tax is 0
*/
BigDecimal expectedTax = BigDecimal.ZERO;
assertEquals(0, expectedTax.compareTo(calculator.calculateTax()),
"Tax for purchase should be zero");
}

@Test
void testCalculateTotal() {
/**
* Total = Gross + Commission
* Total = 1000 + 10 = 1010
*/
BigDecimal expectedTotal = new BigDecimal("1010");
assertEquals(0, expectedTotal.compareTo(calculator.calculateTotal()),
"Total should be Gross + Commission + Tax");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package edu.ntnu.idi.idatt2003.gruppe42.Model.Calculator;

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

import edu.ntnu.idi.idatt2003.gruppe42.Model.Share;
import edu.ntnu.idi.idatt2003.gruppe42.Model.Stock;
import java.math.BigDecimal;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class SaleCalculatorTest {
private SaleCalculator calculator;
private BigDecimal purchasePrice;
private BigDecimal salesPrice;
private BigDecimal quantity;

@BeforeEach
void setUp() {
purchasePrice = new BigDecimal("100");
salesPrice = new BigDecimal("150");
quantity = new BigDecimal("10");
Stock stock = new Stock("AAPL", "Apple Inc.", salesPrice);
Share share = new Share(stock, quantity, purchasePrice);

calculator = new SaleCalculator(share);
}

@Test
void testCalculateGross() {
/**
* Gross = Sales Price * Quantity
* 1500 = 150 * 10
*/
BigDecimal expectedGross = new BigDecimal("1500");
assertEquals(0, expectedGross.compareTo(calculator.calculateGross()),
"Gross should be salesPrice * quantity");
}

@Test
void testCalculateCommission() {
/**
* Commission = Gross * Commission Rate (1%)
* Commission = 1500 * 0.01 = 15
*/
BigDecimal expectedCommission = new BigDecimal("15");
assertEquals(0, expectedCommission.compareTo(calculator.calculateCommission()),
"Commission should be 1% of Gross");
}

@Test
void testCalculateTax() {
/**
* Tax = (Sales Price - Purchase Price) * Quantity * Tax Rate (22%)
* (150 - 100) * 10 * 0.22 = 110
*/
BigDecimal expectedTax = new BigDecimal("110");
assertEquals(0, expectedTax.compareTo(calculator.calculateTax()),
"Tax should be 22% of profit");
}

@Test
void testCalculateTotal() {
/**
* Total = Gross - Commission - Tax
* Total = 1500 - 15 - 110 = 1375
*/
BigDecimal expectedTotal = new BigDecimal("1375");
assertEquals(0, expectedTotal.compareTo(calculator.calculateTotal()),
"Total should be Gross - Commission - Tax");
}
}