package com.acme.ejb.calc;
import java.math.BigDecimal;
import javax.ejb.EJB;
import junit.framework.Assert;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class MortgageCalculatorTestCase {
@Deployment
public static JavaArchive createDeployment() {
// explicit archive name required until ARQ-77 is resolved
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(MortgageCalculator.class, MortgageCalculatorBean.class);
}
@EJB
MortgageCalculator calculator;
@Test
public void shouldCalculateMonthlyPaymentAccurately() {
// calculator = new MortgageCalculatorBean();
double principal = 750000;
double rate = 7.5;
int term = 30;
BigDecimal expected = new BigDecimal(Double.toString(5244.11));
BigDecimal actual = calculator.calculateMonthlyPayment(principal, rate, term);
Assert.assertEquals("A banking error has been detected!", expected, actual);
principal = 2500000;
rate = 5.5;
term = 30;
expected = new BigDecimal(Double.toString(14194.72));
actual = calculator.calculateMonthlyPayment(principal, rate, term);
Assert.assertEquals("A banking error has been detected!", expected, actual);
}
}