1 /* 2 * Copyright (C) The JContainer Group. All rights reserved. 3 * 4 * This software is published under the terms of the JContainer 5 * Software License version 1.1, a copy of which has been included 6 * with this distribution in the LICENSE.txt file. 7 */ 8 package org.jcontainer.dna.impl; 9 10 import java.lang.reflect.InvocationHandler; 11 import java.lang.reflect.Method; 12 import java.util.ArrayList; 13 import java.util.Arrays; 14 import java.util.List; 15 import junit.framework.Assert; 16 17 class MockInvocationRecorder 18 implements InvocationHandler 19 { 20 private List m_invocations = new ArrayList(); 21 private int m_index; 22 23 public void addInvocation( final Method method, 24 final Object[] args, 25 final Object result ) 26 { 27 final InvocationRecord record = new InvocationRecord(); 28 record.m_method = method; 29 record.m_args = args; 30 record.m_result = result; 31 m_invocations.add( record ); 32 } 33 34 public Object invoke( final Object proxy, 35 final Method method, 36 final Object[] args ) 37 throws Throwable 38 { 39 InvocationRecord record = (InvocationRecord)m_invocations.get( m_index++ ); 40 if( null == record ) 41 { 42 Assert.fail( "Unexpected invocation " + method.getName() + " with args " + Arrays.asList( args ) + 43 " at index " + m_index + " when expecting " + m_invocations.size() + "invocations" ); 44 } 45 Assert.assertEquals( "method", record.m_method, method ); 46 if( args != null && record.m_args != null ) 47 { 48 Assert.assertEquals( "args.length", record.m_args.length, args.length ); 49 } 50 else if( args == null && 0 != record.m_args.length ) 51 { 52 Assert.fail( "Got empty args but expected " + Arrays.asList( record.m_args ) ); 53 } 54 else if( record.m_args == null && 0 != args.length ) 55 { 56 Assert.fail( "Expected empty args but got " + Arrays.asList( args ) ); 57 } 58 59 return record.m_result; 60 } 61 }

This page was automatically generated by Maven