147d431f63a66505a645f282416659a9758a91f1cBrett Chabot/* 247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Copyright 2001-2009 OFFIS, Tammo Freese 347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Licensed under the Apache License, Version 2.0 (the "License"); 547d431f63a66505a645f282416659a9758a91f1cBrett Chabot * you may not use this file except in compliance with the License. 647d431f63a66505a645f282416659a9758a91f1cBrett Chabot * You may obtain a copy of the License at 747d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 847d431f63a66505a645f282416659a9758a91f1cBrett Chabot * http://www.apache.org/licenses/LICENSE-2.0 947d431f63a66505a645f282416659a9758a91f1cBrett Chabot * 1047d431f63a66505a645f282416659a9758a91f1cBrett Chabot * Unless required by applicable law or agreed to in writing, software 1147d431f63a66505a645f282416659a9758a91f1cBrett Chabot * distributed under the License is distributed on an "AS IS" BASIS, 1247d431f63a66505a645f282416659a9758a91f1cBrett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1347d431f63a66505a645f282416659a9758a91f1cBrett Chabot * See the License for the specific language governing permissions and 1447d431f63a66505a645f282416659a9758a91f1cBrett Chabot * limitations under the License. 1547d431f63a66505a645f282416659a9758a91f1cBrett Chabot */ 1647d431f63a66505a645f282416659a9758a91f1cBrett Chabotpackage org.easymock.internal.matchers; 1747d431f63a66505a645f282416659a9758a91f1cBrett Chabot 1847d431f63a66505a645f282416659a9758a91f1cBrett Chabotimport java.util.Arrays; 1947d431f63a66505a645f282416659a9758a91f1cBrett Chabot 2047d431f63a66505a645f282416659a9758a91f1cBrett Chabotimport org.easymock.internal.ArgumentToString; 2147d431f63a66505a645f282416659a9758a91f1cBrett Chabot 2247d431f63a66505a645f282416659a9758a91f1cBrett Chabotpublic class ArrayEquals extends Equals { 2347d431f63a66505a645f282416659a9758a91f1cBrett Chabot 2447d431f63a66505a645f282416659a9758a91f1cBrett Chabot private static final long serialVersionUID = 1L; 2547d431f63a66505a645f282416659a9758a91f1cBrett Chabot 2647d431f63a66505a645f282416659a9758a91f1cBrett Chabot public ArrayEquals(Object expected) { 2747d431f63a66505a645f282416659a9758a91f1cBrett Chabot super(expected); 2847d431f63a66505a645f282416659a9758a91f1cBrett Chabot } 2947d431f63a66505a645f282416659a9758a91f1cBrett Chabot 3047d431f63a66505a645f282416659a9758a91f1cBrett Chabot @Override 3147d431f63a66505a645f282416659a9758a91f1cBrett Chabot public boolean matches(Object actual) { 3247d431f63a66505a645f282416659a9758a91f1cBrett Chabot Object expected = getExpected(); 3347d431f63a66505a645f282416659a9758a91f1cBrett Chabot if (expected instanceof boolean[] 3447d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof boolean[])) { 3547d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((boolean[]) expected, (boolean[]) actual); 3647d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof byte[] 3747d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof byte[])) { 3847d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((byte[]) expected, (byte[]) actual); 3947d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof char[] 4047d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof char[])) { 4147d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((char[]) expected, (char[]) actual); 4247d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof double[] 4347d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof double[])) { 4447d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((double[]) expected, (double[]) actual); 4547d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof float[] 4647d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof float[])) { 4747d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((float[]) expected, (float[]) actual); 4847d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof int[] 4947d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof int[])) { 5047d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((int[]) expected, (int[]) actual); 5147d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof long[] 5247d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof long[])) { 5347d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((long[]) expected, (long[]) actual); 5447d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof short[] 5547d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof short[])) { 5647d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((short[]) expected, (short[]) actual); 5747d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else if (expected instanceof Object[] 5847d431f63a66505a645f282416659a9758a91f1cBrett Chabot && (actual == null || actual instanceof Object[])) { 5947d431f63a66505a645f282416659a9758a91f1cBrett Chabot return Arrays.equals((Object[]) expected, (Object[]) actual); 6047d431f63a66505a645f282416659a9758a91f1cBrett Chabot } else { 6147d431f63a66505a645f282416659a9758a91f1cBrett Chabot return super.matches(actual); 6247d431f63a66505a645f282416659a9758a91f1cBrett Chabot } 6347d431f63a66505a645f282416659a9758a91f1cBrett Chabot } 6447d431f63a66505a645f282416659a9758a91f1cBrett Chabot 6547d431f63a66505a645f282416659a9758a91f1cBrett Chabot @Override 6647d431f63a66505a645f282416659a9758a91f1cBrett Chabot public void appendTo(StringBuffer buffer) { 6747d431f63a66505a645f282416659a9758a91f1cBrett Chabot ArgumentToString.appendArgument(getExpected(), buffer); 6847d431f63a66505a645f282416659a9758a91f1cBrett Chabot } 6947d431f63a66505a645f282416659a9758a91f1cBrett Chabot} 70