Skip to content

Commit

Permalink
Merge pull request #39 from einaskoi/per/calculatorTest
Browse files Browse the repository at this point in the history
Added PurchaseCalculatorTest & SaleCalculatorTest
  • Loading branch information
einaskoi authored Feb 25, 2026
2 parents 9f35796 + 0651299 commit 3a7b2ec
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 4 deletions.
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");
}
}

0 comments on commit 3a7b2ec

Please sign in to comment.