factory.initialize(factoryMailbox);
(new JidFactories()).initialize(factoryMailbox, factory);
(new JFileFactories()).initialize(factoryMailbox, factory);
JAFuture future = new JAFuture();
Path directoryPath = FileSystems.getDefault().getPath("CheckpointTest");
OpenDbFile openDbFile = new OpenDbFile(10000);
AggregateTransaction aggregateAddTransaction =
AddIntegerTransactionFactory.at(factoryMailbox, "counter", 2);
AggregateTransaction aggregateIncrementTransaction =
IncrementIntegerTransactionFactory.at(factoryMailbox, "counter");
AggregateTransaction aggregateGetTransaction =
GetIntegerTransactionFactory.at(factoryMailbox, "counter");
System.out.println("db1");
IMDB db1 = new IMDB(mailboxFactory, factory, directoryPath);
db1.clearDirectory();
openDbFile.send(future, db1);
System.out.println("online");
TransactionAggregator transactionAggregator1 = db1.getTransactionAggregator();
aggregateIncrementTransaction.sendEvent(transactionAggregator1);
int total1 = (Integer) aggregateGetTransaction.send(future, transactionAggregator1);
assertEquals(1, total1);
db1.closeDbFile();
System.out.println("db2");
IMDB db2 = new IMDB(mailboxFactory, factory, directoryPath);
openDbFile.send(future, db2);
System.out.println("online");
TransactionAggregator transactionAggregator2 = db2.getTransactionAggregator();
aggregateIncrementTransaction.sendEvent(transactionAggregator2);
aggregateIncrementTransaction.sendEvent(transactionAggregator2);
int total2 = (Integer) aggregateGetTransaction.send(future, transactionAggregator2);
assertEquals(3, total2);
db2.closeDbFile();
System.out.println("db3");
IMDB db3 = new IMDB(mailboxFactory, factory, directoryPath);
openDbFile.send(future, db3);
System.out.println("online");
TransactionAggregator transactionAggregator3 = db3.getTransactionAggregator();
aggregateIncrementTransaction.sendEvent(transactionAggregator3);
aggregateIncrementTransaction.sendEvent(transactionAggregator3);
aggregateAddTransaction.sendEvent(transactionAggregator3);