1 15 package org.apache.hivemind.test; 16 17 import org.easymock.AbstractMatcher; 18 19 23 public class AggregateArgumentsMatcher extends AbstractMatcher 24 { 25 private ArgumentMatcher[] _matchers; 26 27 private ArgumentMatcher _defaultMatcher = new EqualsMatcher(); 28 29 35 public AggregateArgumentsMatcher(ArgumentMatcher[] matchers) 36 { 37 _matchers = matchers; 38 } 39 40 43 public AggregateArgumentsMatcher(ArgumentMatcher matcher) 44 { 45 this(new ArgumentMatcher[] 46 { matcher }); 47 } 48 49 public boolean matches(Object [] expected, Object [] actual) 50 { 51 for (int i = 0; i < expected.length; i++) 52 { 53 if (!matches(i, expected[i], actual[i])) 54 return false; 55 } 56 57 return true; 58 } 59 60 private boolean matches(int argumentIndex, Object expected, Object actual) 61 { 62 if (expected == actual) 63 return true; 64 65 67 if (expected == null || actual == null) 68 return false; 69 70 ArgumentMatcher am = getArgumentMatcher(argumentIndex); 71 72 return am.compareArguments(expected, actual); 73 } 74 75 private ArgumentMatcher getArgumentMatcher(int argumentIndex) 76 { 77 if (argumentIndex >= _matchers.length) 78 return _defaultMatcher; 79 80 ArgumentMatcher result = _matchers[argumentIndex]; 81 82 if (result == null) 83 result = _defaultMatcher; 84 85 return result; 86 } 87 } | Popular Tags |