[jboss-cvs] jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/test ...
Norman Richards
norman.richards at jboss.com
Tue Oct 9 21:08:21 EDT 2007
User: nrichards
Date: 07/10/09 21:08:21
Added: examples/seampay/src/org/jboss/seam/example/seampay/test
AccountTest.java PaymentProcessorTest.java
testng.xml
Log:
JBSEAM-2067
Revision Changes Path
1.1 date: 2007/10/10 01:08:21; author: nrichards; state: Exp;jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/test/AccountTest.java
Index: AccountTest.java
===================================================================
package org.jboss.seam.example.seampay.test;
import java.math.BigDecimal;
import java.util.List;
import org.jboss.seam.example.seampay.Account;
import org.jboss.seam.example.seampay.Payment;
import org.jboss.seam.example.seampay.Payment.Frequency;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
/**
* embedded ejb3 doesn't support timer service, so we are fairly limited on what we can test.
*/
public class AccountTest
extends SeamTest
{
@Test
public void listAccounts() throws Exception {
String id = new FacesRequest("/search.xhtml") {
@Override
@SuppressWarnings("unchecked")
protected void renderResponse() throws Exception {
List<Account> accounts = (List<Account>) getValue("#{accounts.resultList}");
assert accounts.size() == 5;
// check ASC?
}
}.run();
}
@Test
public void selectAccount() throws Exception {
String id = new FacesRequest("/search.xhtml") {
@Override
@SuppressWarnings("unchecked")
protected void renderResponse() throws Exception {
assert !((Boolean)getValue("#{accountHome.idDefined}"));
}
}.run();
new FacesRequest("/search.xhtml", id) {
@Override
protected void beforeRequest() {
setParameter("accountId", "1");
}
@Override
protected void renderResponse() throws Exception {
assert ((Boolean)getValue("#{accountHome.idDefined}"));
Account account = (Account) getValue("#{selectedAccount}");
assert account !=null;
assert account.getId() == 1;
assert account.getPayments().size() == 0;
Payment payment = (Payment) getValue("#{newPayment}");
assert payment.getPayee().equals("Somebody");
assert payment.getAccount() != null;
assert payment.getAccount().getId() == 1;
}
}.run();
new FacesRequest("/search.xhtml", id) {
@Override
protected void beforeRequest() {
setParameter("accountId", "1");
}
@Override
protected void applyRequestValues() throws Exception {
setValue("#{newPayment.payee}", "IRS");
setValue("#{newPayment.amount}", new BigDecimal("100.00"));
setValue("#{newPayment.paymentFrequency}", Frequency.ONCE);
}
@Override
protected void invokeApplication() throws Exception {
invokeMethod("#{paymentHome.saveAndSchedule}");
}
@Override
protected void renderResponse() throws Exception {
assert ((Boolean)getValue("#{accountHome.idDefined}"));
Account account = (Account) getValue("#{selectedAccount}");
assert account !=null;
assert account.getId() == 1;
assert account.getPayments().size() == 1;
Payment payment = (Payment) getValue("#{newPayment}");
assert payment.getPayee().equals("IRS");
assert payment.getAmount().equals(new BigDecimal("100.00"));
assert payment.getAccount() != null;
assert payment.getAccount().getId() == 1;
}
}.run();
// test that the payment is around
new FacesRequest("/search.xhtml") {
@Override
protected void beforeRequest() {
setParameter("accountId", "1");
}
@Override
protected void renderResponse() throws Exception {
assert ((Boolean)getValue("#{accountHome.idDefined}"));
Account account = (Account) getValue("#{selectedAccount}");
assert account !=null;
assert account.getId() == 1;
assert account.getPayments().size() == 1;
}
}.run();
}
}
1.1 date: 2007/10/10 01:08:21; author: nrichards; state: Exp;jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/test/PaymentProcessorTest.java
Index: PaymentProcessorTest.java
===================================================================
package org.jboss.seam.example.seampay.test;
import java.math.BigDecimal;
import java.util.Date;
import org.jboss.seam.example.seampay.Account;
import org.jboss.seam.example.seampay.Payment;
import org.jboss.seam.example.seampay.PaymentProcessor;
import org.jboss.seam.example.seampay.Payment.Frequency;
import org.jboss.seam.mock.SeamTest;
import org.testng.annotations.Test;
public class PaymentProcessorTest
extends SeamTest
{
static final String ACCOUNT_NUMBER = "X12345";
static final BigDecimal INITIAL_BALANCE = new BigDecimal("1000");
@Test
public void testInactive() {
PaymentProcessor processor = new PaymentProcessor();
Payment payment = createTestPayment(new BigDecimal("100"), Frequency.ONCE);
payment.setActive(false);
assert payment.getAccount().getBalance().equals(INITIAL_BALANCE);
processor.processPayment(payment);
assert payment.getAccount().getBalance().equals(INITIAL_BALANCE);
assert payment.getLastPaid() == null;
}
@Test
public void testPayOnce() {
PaymentProcessor processor = new PaymentProcessor();
Payment payment = createTestPayment(new BigDecimal("100"), Frequency.ONCE);
assert payment.getAccount().getBalance().equals(INITIAL_BALANCE);
processor.processPayment(payment);
assert payment.getAccount().getBalance().equals(new BigDecimal("900"));
assert !payment.getActive();
assert payment.getLastPaid() != null;
}
@Test
public void testPayMultiple() {
PaymentProcessor processor = new PaymentProcessor();
Payment payment = createTestPayment(new BigDecimal("100"), Frequency.WEEKLY);
assert payment.getAccount().getBalance().equals(INITIAL_BALANCE);
processor.processPayment(payment);
assert payment.getAccount().getBalance().equals(new BigDecimal("900"));
assert payment.getActive();
assert payment.getLastPaid() != null;
Date firstPayment = payment.getLastPaid();
pause(); // just need to make sure we are some small time in the future
processor.processPayment(payment);
assert payment.getAccount().getBalance().equals(new BigDecimal("800"));
assert payment.getActive();
assert payment.getLastPaid().after(firstPayment);
}
private void pause() {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
}
}
protected Payment createTestPayment(BigDecimal amount, Frequency frequency) {
Account account = new Account();
account.setAccountNumber(ACCOUNT_NUMBER);
setField(account, "balance", INITIAL_BALANCE);
Payment payment = new Payment();
payment.setAccount(account);
payment.setAmount(amount);
payment.setPaymentFrequency(frequency);
return payment;
}
}
1.1 date: 2007/10/10 01:08:21; author: nrichards; state: Exp;jboss-seam/examples/seampay/src/org/jboss/seam/example/seampay/test/testng.xml
Index: testng.xml
===================================================================
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="seampay" verbose="2" parallel="false">
<test name="seampay">
<classes>
<class
name="org.jboss.seam.example.seampay.test.PaymentProcessorTest" />
<class
name="org.jboss.seam.example.seampay.test.AccountTest" />
</classes>
</test>
</suite>
More information about the jboss-cvs-commits
mailing list