File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes JUnit Testing Problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Customer Requirements for Developers this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Reply locked New topic

JUnit Testing Problem

kartik sanghavi

Joined: Aug 13, 2010
Posts: 3
I am new to spring!!

I have got the source code of spring recipes book by gary mark.

In an application of bank I am trying to alter the Account class, AccountService interface and the AccountServiceImpl class to allow the setting of a credit limit on accounts and for withdrawals to be allowed up to that credit limit.

Plus I have to Alter the JUnit test in AccountServiceTests to test this new functionality.

How can I do this?

The original files are as under:


public class Account {

private String accountNo;
private double balance;

public Account() {}

public Account(String accountNo, double balance) {
this.accountNo = accountNo;
this.balance = balance;

public String getAccountNo() {
return accountNo;

public double getBalance() {
return balance;

public void setAccountNo(String accountNo) {
this.accountNo = accountNo;

public void setBalance(double balance) {
this.balance = balance;

public boolean equals(Object obj) {
if (!(obj instanceof Account)) {
return false;
Account account = (Account) obj;
return account.accountNo.equals(accountNo) && account.balance == balance;



public interface AccountService {

public void createAccount(String accountNo);
public void removeAccount(String accountNo);
public void deposit(String accountNo, double amount);
public void withdraw(String accountNo, double amount);
public double getBalance(String accountNo);



public class AccountServiceImpl implements AccountService {

private AccountDao accountDao;

public AccountServiceImpl(AccountDao accountDao) {
this.accountDao = accountDao;

public void createAccount(String accountNo) {
accountDao.createAccount(new Account(accountNo, 0));

public void removeAccount(String accountNo) {
Account account = accountDao.findAccount(accountNo);

public void deposit(String accountNo, double amount) {
Account account = accountDao.findAccount(accountNo);
account.setBalance(account.getBalance() + amount);

public void withdraw(String accountNo, double amount) {
Account account = accountDao.findAccount(accountNo);
if (account.getBalance() < amount) {
throw new InsufficientBalanceException();
account.setBalance(account.getBalance() - amount);

public double getBalance(String accountNo) {
return accountDao.findAccount(accountNo).getBalance();



import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class AccountServiceTests {

private static final String TEST_ACCOUNT_NO = "1234";
private AccountService accountService;

public void init() {
accountService = new AccountServiceImpl(new InMemoryAccountDao());
accountService.deposit(TEST_ACCOUNT_NO, 100);

public void deposit() {
accountService.deposit(TEST_ACCOUNT_NO, 50);
assertEquals(accountService.getBalance(TEST_ACCOUNT_NO), 150, 0);

public void withDraw() {
accountService.withdraw(TEST_ACCOUNT_NO, 50);
assertEquals(accountService.getBalance(TEST_ACCOUNT_NO), 50, 0);

public void cleanup() {

Bear Bibeault
Author and ninkuma

Joined: Jan 10, 2002
Posts: 63061

Please do not cross-post the same question in multiple forums. It wastes people's time when multiple redundant conversations take place. Please click this link ⇒ CarefullyChooseOneForum ⇐ for more information.

[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
I agree. Here's the link:
subject: JUnit Testing Problem
It's not a secret anymore!