1 package com.tirsen.nanning.samples.prevayler; 2 3 import java.io.IOException ; 4 5 import junit.framework.Assert; 6 import org.prevayler.Prevayler; 7 import org.prevayler.Transaction; 8 9 public class CountingPrevayler extends FilterPrevayler { 10 private int numberOfTransactionsInLog = 0; 11 private StringBuffer transactionLog; 12 13 public CountingPrevayler(Prevayler prevayler) { 14 super(prevayler); 15 } 16 17 public void setLogTransactionMethods(boolean flag) { 18 transactionLog = flag ? new StringBuffer () : null; 19 } 20 21 public void execute(Transaction transaction) { 22 numberOfTransactionsInLog++; 23 if (transactionLog != null && transaction instanceof InvokeCommand) { 24 InvokeCommand invokeCommand = (InvokeCommand) transaction; 25 if (transactionLog.length() != 0) { 26 transactionLog.append(" "); 27 } 28 transactionLog.append(invokeCommand.getCall().getMethod().getName()); 29 } 30 31 super.execute(transaction); 32 } 33 34 public void assertNumberOfCommands(String message, int expectedNumber) { 35 Assert.assertEquals(message + ", wrong number of commands in log", expectedNumber, numberOfTransactionsInLog); 36 } 37 38 public void assertNumberOfCommands(int expectedNumber) { 39 Assert.assertEquals("wrong number of commands in log", expectedNumber, numberOfTransactionsInLog); 40 } 41 42 public int getNumberOfTransactionsInLog() { 43 return numberOfTransactionsInLog; 44 } 45 46 public void resetCount() { 47 numberOfTransactionsInLog = 0; 48 if (transactionLog != null) { 49 transactionLog = new StringBuffer (); 50 } 51 } 52 53 public String getTransactionLog() { 54 return transactionLog.toString(); 55 } 56 } 57 | Popular Tags |