import java.util.Random;
public class BankingTest extends Thread {
private Account[] accounts;
private static Random random = new Random();
public BankingTest(Account[] accounts) {
this.accounts = accounts;
}
public void run() {
final TransferManager manager = new TransferManager();
//simulate some transfers
for(int i = 0; i < accounts.length; i++) {
final int index = i;
Thread thread = new Thread() {
public void run() {
try {
for(int j = 0; j < 10; j++) {
manager.issueTransfer(accounts[index], accounts[(index+1)%accounts.length], 100);
Thread.sleep(random.nextInt(10));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
//wait a bit
try {
Thread.sleep(60);
} catch (InterruptedException e) {
e.printStackTrace();
}
manager.performTransfers();
System.out.println(manager);
}
}