001package com.avaje.ebean; 002 003import java.util.LinkedHashMap; 004import java.util.Map; 005 006/** 007 * Holds the method name and arguments. 008 * <p/> 009 * Used to collect the invoked methods for asserting. 010 */ 011public class MethodCall { 012 013 String name; 014 015 Map<String,Object> args = new LinkedHashMap<String, Object>(); 016 017 public MethodCall(String name) { 018 this.name = name; 019 } 020 021 public String toString() { 022 return name+":"+args; 023 } 024 025 026 /** 027 * Add the single argument. 028 */ 029 public MethodCall with(String name1, Object arg1) { 030 return with(name1, arg1, null, null, null, null); 031 } 032 033 /** 034 * Add the two arguments. 035 */ 036 public MethodCall with(String name1, Object arg1, String name2, Object arg2) { 037 return with(name1, arg1, name2, arg2, null, null); 038 } 039 040 /** 041 * Add three arguments. 042 */ 043 public MethodCall with(String name1, Object arg1, String name2, Object arg2, String name3, Object arg3) { 044 return with(name1, arg1, name2, arg2, name3, arg3, null, null); 045 } 046 047 /** 048 * Add four arguments. 049 */ 050 public MethodCall with(String name1, Object arg1, String name2, Object arg2, String name3, Object arg3, String name4, Object arg4) { 051 args.put(name1, arg1); 052 if (name2 != null) { 053 args.put(name2, arg2); 054 if (name3 != null) { 055 args.put(name3, arg3); 056 if (name4 != null) { 057 args.put(name4, arg4); 058 } 059 } 060 } 061 return this; 062 } 063 064 public static MethodCall of(String methodName) { 065 return new MethodCall(methodName); 066 } 067}