18da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/* 28da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Copyright 2010 Google Inc. 38da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 48da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Licensed under the Apache License, Version 2.0 (the "License"); you may not 58da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * use this file except in compliance with the License. You may obtain a copy of 68da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * the License at 78da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 88da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * http://www.apache.org/licenses/LICENSE-2.0 98da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Unless required by applicable law or agreed to in writing, software 118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * License for the specific language governing permissions and limitations under 148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * the License. 158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpackage com.google.android.testing.mocking; 178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.CannotCompileException; 198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.ClassPool; 208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.CtClass; 218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.CtMethod; 228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.Modifier; 238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.NotFoundException; 248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.expr.ExprEditor; 258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport javassist.expr.MethodCall; 268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport junit.framework.TestCase; 288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport org.easymock.Capture; 308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport org.easymock.IAnswer; 318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport org.easymock.LogicalOperator; 328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport org.easymock.internal.matchers.Equals; 338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.io.IOException; 358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.io.InputStream; 368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.io.ObjectInput; 378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.ArrayList; 388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Arrays; 398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Calendar; 408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.List; 418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Locale; 428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Map; 438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.SimpleTimeZone; 448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalimport java.util.Vector; 458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal/** 488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Tests for the AndroidMock class. 498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @author swoodward@google.com (Stephen Woodward) 518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigalpublic class AndroidMockTest extends TestCase { 538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private List<String> notForwardedMethods = 548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new ArrayList<String>(Arrays.asList(new String[] { 558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.getInterfaceFor(java.lang.Class)", 568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.getSubclassNameFor(java.lang.Class)", 578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.getSubclassFor(java.lang.Class," 588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.Class,java.lang.Object)", 598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.getInterfaceNameFor(java.lang.Class)", 608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createStrictMock(" 618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.Class,java.lang.Object[])", 628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createStrictMock(" 638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.String,java.lang.Class,java.lang.Object[])", 648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createMock(" 658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.Class,java.lang.Object[])", 668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createMock(" 678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.String,java.lang.Class,java.lang.Object[])", 688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createNiceMock(" 698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.Class,java.lang.Object[])", 708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal "com.google.android.testing.mocking.AndroidMock.createNiceMock(" 718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal + "java.lang.String,java.lang.Class,java.lang.Object[])"})); 728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private CtMethod[] getForwardedMethods() throws NotFoundException { 748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<CtMethod> methods = 758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new ArrayList<CtMethod>(Arrays.asList(getAndroidMockCtClass().getDeclaredMethods())); 768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Get a copy for safe removal of elements during iteration. 778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal for (CtMethod method : Arrays.asList(methods.toArray(new CtMethod[0]))) { 788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal if (notForwardedMethods.contains(method.getLongName()) 798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal || !Modifier.isPublic(method.getModifiers())) { 808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal methods.remove(method); 818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return methods.toArray(new CtMethod[0]); 848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private CtClass getAndroidMockCtClass() throws NotFoundException { 878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return ClassPool.getDefault().get("com.google.android.testing.mocking.AndroidMock"); 888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private void compileClasses(List<GeneratedClassFile> mockClasses) throws NotFoundException { 918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal for (GeneratedClassFile clazz : mockClasses) { 928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CtClass ctClass; 938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal ctClass = ClassPool.getDefault().get(clazz.getClassName()); 948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal ctClass.toClass(); 968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (CannotCompileException e) { 978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Just ignore -- this will happen for every class used in more than one test. 988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsUnboxableToPrimitiveAllPrimitives() { 1038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Integer.TYPE, new Integer(42), true)); 1048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Long.TYPE, new Long(42L), true)); 1058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Short.TYPE, new Short((short) 42), true)); 1068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Byte.TYPE, new Byte((byte) 42), true)); 1078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Boolean.TYPE, Boolean.TRUE, true)); 1088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Float.TYPE, new Float(42.0f), true)); 1098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Double.TYPE, new Double(42.0), true)); 1108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Character.TYPE, new Character('a'), true)); 1118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Integer.TYPE, 42, true)); 1138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Long.TYPE, 42L, true)); 1148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Short.TYPE, (short) 42, true)); 1158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Byte.TYPE, (byte) 42, true)); 1168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Boolean.TYPE, true, true)); 1178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Float.TYPE, 42.0f, true)); 1188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Double.TYPE, 42.0, true)); 1198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(AndroidMock.isUnboxableToPrimitive(Character.TYPE, 'a', true)); 1208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsUnboxableToPrimitiveIsObject() { 1238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertFalse(AndroidMock.isUnboxableToPrimitive(Integer.TYPE, new Object(), false)); 1248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsUnboxableToPrimitiveAllWideningPrimitives() { 1278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Object[] testValues = 1288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new Object[] {new Byte((byte) 42), new Short((short) 42), new Integer(42), new Long(42L), 1298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new Float(42.0f), new Double(42.0), new Character('a'), Boolean.TRUE}; 1308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] byteExpected = new boolean[] {true, false, false, false, false, false, false, false}; 1318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] shortExpected = new boolean[] {true, true, false, false, false, false, true, false}; 1328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] intExpected = new boolean[] {true, true, true, false, false, false, true, false}; 1338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] longExpected = new boolean[] {true, true, true, true, false, false, true, false}; 1348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] floatExpected = new boolean[] {true, true, true, false, true, false, true, false}; 1358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] doubleExpected = new boolean[] {true, true, true, true, true, true, true, false}; 1368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] charExpected = new boolean[] {true, true, true, false, false, false, true, false}; 1378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal boolean[] booleanExpected = 1388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new boolean[] {false, false, false, false, false, false, false, true}; 1398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal for (int i = 0; i < testValues.length; ++i) { 1418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert byte from " + testValues[i].getClass(), byteExpected[i], AndroidMock 1428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Byte.TYPE, testValues[i], false)); 1438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert short from " + testValues[i].getClass(), shortExpected[i], AndroidMock 1448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Short.TYPE, testValues[i], false)); 1458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert int from " + testValues[i].getClass(), intExpected[i], AndroidMock 1468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Integer.TYPE, testValues[i], false)); 1478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert long from " + testValues[i].getClass(), longExpected[i], AndroidMock 1488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Long.TYPE, testValues[i], false)); 1498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert float from " + testValues[i].getClass(), floatExpected[i], AndroidMock 1508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Float.TYPE, testValues[i], false)); 1518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert double from " + testValues[i].getClass(), doubleExpected[i], 1528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.isUnboxableToPrimitive(Double.TYPE, testValues[i], false)); 1538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert char from " + testValues[i].getClass(), charExpected[i], AndroidMock 1548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .isUnboxableToPrimitive(Character.TYPE, testValues[i], false)); 1558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Convert boolean from " + testValues[i].getClass(), booleanExpected[i], 1568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.isUnboxableToPrimitive(Boolean.TYPE, testValues[i], false)); 1578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsUnboxableToPrimitiveNotPrimitive() { 1628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 1638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.isUnboxableToPrimitive(Object.class, Object.class, false); 1648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Exception should have been thrown"); 1658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 1668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // expected 1678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMock() throws ClassNotFoundException, IOException, CannotCompileException, 1718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal NotFoundException { 1728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 1738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 1748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 1758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createMock(Vector.class); 1768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 1778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 1788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 1798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 1808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingParameters() throws ClassNotFoundException, IOException, 1838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 1848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 1858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 1868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 1878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createMock(SimpleTimeZone.class, 0, "GMT"); 1888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 1898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 1908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 1918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 1928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 1938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 1948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingProtectedConstructors() throws ClassNotFoundException, 1958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 1968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 1978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Calendar.class); 1988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 1998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Calendar mockCalendar = AndroidMock.createMock(Calendar.class); 2008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockCalendar.getGreatestMinimum(1)).andReturn(42); 2018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockCalendar); 2028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockCalendar.getGreatestMinimum(1)); 2038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockCalendar); 2048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Just don't explode 2068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Calendar newMockCalendar = 2078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.createMock(Calendar.class, new SimpleTimeZone(1, "GMT"), Locale.UK); 2088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingCastableParameters() throws ClassNotFoundException, IOException, 2118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 2128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 2148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createMock(SimpleTimeZone.class, 'a', "GMT"); 2168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 2178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 2188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 2198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 2208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingUnusableParameters() throws ClassNotFoundException, IOException, 2238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 2248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 2268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 2288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createMock(SimpleTimeZone.class, "GMT"); 2298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect number of constructor parameters"); 2308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 2318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 2328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 2348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createMock(SimpleTimeZone.class, 0, null); 2358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for indeterminate null constructor parameters"); 2368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 2378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 2388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 2408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createMock(SimpleTimeZone.class, 0, new Object()); 2418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect constructor parameters"); 2428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 2438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 2448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingInterface() throws ClassNotFoundException, IOException, 2488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 2498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Map.class); 2518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<String, String> mockMap = AndroidMock.createMock(Map.class); 2538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get("key")).andReturn("Hello World"); 2548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 2558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockMap.get("key")); 2568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockMap); 2578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockUsingClass() throws ClassNotFoundException, IOException, 2608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 2618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 2638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createMock(Vector.class); 2658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 2668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 2678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 2688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 2698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMock() throws ClassNotFoundException, IOException, 2728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 2738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 2758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createNiceMock(Vector.class); 2778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 2788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 2798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 2808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 2818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 2838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMockUsingUnusableParameters() throws ClassNotFoundException, 2848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 2858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 2868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 2878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 2888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 2898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createNiceMock(SimpleTimeZone.class, "GMT"); 2908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect number of constructor parameters"); 2918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 2928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 2938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 2948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 2958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createNiceMock(SimpleTimeZone.class, 0, null); 2968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for indeterminate null constructor parameters"); 2978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 2988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 2998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 3018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = 3028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.createNiceMock(SimpleTimeZone.class, 0, new Object()); 3038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect constructor parameters"); 3048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 3058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 3068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMockUsingParameters() throws ClassNotFoundException, IOException, 3108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 3118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 3138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createNiceMock(SimpleTimeZone.class, 0, "GMT"); 3168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 3178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 3188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 3198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 3208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMockUsingCastableParameters() throws ClassNotFoundException, 3238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 3248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 3268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createNiceMock(SimpleTimeZone.class, 'a', "GMT"); 3298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 3308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 3318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 3328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 3338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMockUsingInterface() throws ClassNotFoundException, IOException, 3368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 3378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Map.class); 3398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<String, String> mockMap = AndroidMock.createNiceMock(Map.class); 3428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get("key")).andReturn("Hello World"); 3438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 3448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockMap.get("key")); 3458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockMap); 3468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateNiceMockUsingClass() throws ClassNotFoundException, IOException, 3498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 3508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 3528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createNiceMock(Vector.class); 3558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 3568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 3578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 3588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 3598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMock() throws ClassNotFoundException, IOException, 3628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 3638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 3658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createStrictMock(Vector.class); 3688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 3698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 3708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 3718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 3728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMockUsingUnusableParameters() throws ClassNotFoundException, 3758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 3768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 3778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 3788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 3798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 3808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 3818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createStrictMock(SimpleTimeZone.class, "GMT"); 3828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect number of constructor parameters"); 3838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 3848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 3858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 3878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createStrictMock(SimpleTimeZone.class, 0, null); 3888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for indeterminate null constructor parameters"); 3898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 3908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 3918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 3938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = 3948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.createStrictMock(SimpleTimeZone.class, 0, new Object()); 3958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("Excepted an IllegalArgumentException for incorrect constructor parameters"); 3968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IllegalArgumentException e) { 3978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // Expected 3988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 3998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMockUsingParameters() throws ClassNotFoundException, IOException, 4028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 4038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 4058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createStrictMock(SimpleTimeZone.class, 0, "GMT"); 4088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 4098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 4108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 4118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 4128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMockUsingCastableParameters() throws ClassNotFoundException, 4158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 4168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(SimpleTimeZone.class); 4188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal SimpleTimeZone mockTimeZone = AndroidMock.createStrictMock(SimpleTimeZone.class, 'a', "GMT"); 4218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockTimeZone.getRawOffset()).andReturn(42); 4228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockTimeZone); 4238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals(42, mockTimeZone.getRawOffset()); 4248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockTimeZone); 4258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMockUsingInterface() throws ClassNotFoundException, IOException, 4288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 4298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Map.class); 4318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<String, String> mockMap = AndroidMock.createStrictMock(Map.class); 4348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get("key")).andReturn("Hello World"); 4358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 4368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockMap.get("key")); 4378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockMap); 4388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateStrictMockUsingClass() throws ClassNotFoundException, IOException, 4418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 4428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 4448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<String> mockVector = AndroidMock.createStrictMock(Vector.class); 4468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockVector.get(0)).andReturn("Hello World"); 4478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 4488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("Hello World", mockVector.get(0).toString()); 4498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 4508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCreateMockConstructorDoesWorkOnAllReturnTypes() throws ClassNotFoundException, 4538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal IOException, CannotCompileException, NotFoundException { 4548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(ClassDoesWorkInConstructor.class); 4568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal ClassDoesWorkInConstructor mock = AndroidMock.createMock(ClassDoesWorkInConstructor.class); 4588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAllForwardedMethods() throws CannotCompileException, NotFoundException { 4618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal for (CtMethod method : getForwardedMethods()) { 4628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal MethodVerifier verifier = new MethodVerifier(method); 4638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // CtMethod.instrument Causes every instruction in the method to be 4648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // inspected, and passed to 4658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // the MethodVerifier callback (extends javassist.expr.ExprEditor). We 4668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // want to verify that 4678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // the expected EasyMock method is called at least once in each 4688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal // AndroidMock method. 4698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal method.instrument(verifier); 4708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertTrue(method.getLongName() + " not called.", verifier.expectedMethodCalled()); 4718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCheckOrder() throws ClassNotFoundException, IOException, CannotCompileException, 4758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal NotFoundException { 4768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 4788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 4808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.checkOrder(mockVector, false); 4818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.checkOrder(AndroidMock.createMock(Map.class), false); 4828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testVerify() throws ClassNotFoundException, IOException, CannotCompileException, 4858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal NotFoundException { 4868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 4878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 4888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 4898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 4908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 4918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockVector); 4928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 4938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 4948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockMap); 4958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 4968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 4978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testResetToStrict() throws ClassNotFoundException, IOException, 4988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 4998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 5008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 5018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 5028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 5038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToStrict(mockVector); 5048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToStrict(mockMap); 5068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testResetToDefault() throws ClassNotFoundException, IOException, 5098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 5108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 5118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 5128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 5138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 5148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToDefault(mockVector); 5158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToDefault(mockMap); 5178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testResetToNice() throws ClassNotFoundException, IOException, 5208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 5218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 5228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 5238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 5248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 5258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToNice(mockVector); 5268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.resetToNice(mockMap); 5288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testReset() throws ClassNotFoundException, IOException, CannotCompileException, 5318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal NotFoundException { 5328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 5338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 5348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 5358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 5368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.reset(mockVector); 5378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.reset(mockMap); 5398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testReplay() throws ClassNotFoundException, IOException, CannotCompileException, 5438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal NotFoundException { 5448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 5458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(Vector.class); 5468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 5478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Vector<?> mockVector = AndroidMock.createMock(Vector.class); 5488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockVector); 5498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testExpect() { 5548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.clear(); 5568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(null); 5578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testExpectLastCall() { 5618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.clear(); 5638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expectLastCall(); 5648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyBoolean() { 5688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyBoolean())).andReturn(null); 5708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyByte() { 5748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyByte())).andReturn(null); 5768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyChar() { 5808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyChar())).andReturn(null); 5828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyInt() { 5868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyInt())).andReturn(null); 5888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyLong() { 5928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyLong())).andReturn(null); 5948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 5958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 5968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 5978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyFloat() { 5988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 5998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyFloat())).andReturn(null); 6008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyDouble() { 6048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyDouble())).andReturn(null); 6068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyShort() { 6108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyShort())).andReturn(null); 6128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnyObject() { 6168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.anyObject())).andReturn(null); 6188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testGeq() { 6228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq((byte) 0))).andReturn(null); 6248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq((short) 0))).andReturn(null); 6258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq(0))).andReturn(null); 6268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq(0L))).andReturn(null); 6278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq(0.0))).andReturn(null); 6288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq(0.0f))).andReturn(null); 6298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.geq("Hi"))).andReturn(null); 6308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testLeq() { 6348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq((byte) 0))).andReturn(null); 6368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq((short) 0))).andReturn(null); 6378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq(0))).andReturn(null); 6388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq(0L))).andReturn(null); 6398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq(0.0))).andReturn(null); 6408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq(0.0f))).andReturn(null); 6418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.leq("Hi"))).andReturn(null); 6428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testGt() { 6468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt((byte) 0))).andReturn(null); 6488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt((short) 0))).andReturn(null); 6498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt(0))).andReturn(null); 6508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt(0L))).andReturn(null); 6518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt(0.0))).andReturn(null); 6528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt(0.0f))).andReturn(null); 6538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.gt("Hi"))).andReturn(null); 6548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testLt() { 6588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt((byte) 0))).andReturn(null); 6608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt((short) 0))).andReturn(null); 6618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt(0))).andReturn(null); 6628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt(0L))).andReturn(null); 6638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt(0.0))).andReturn(null); 6648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt(0.0f))).andReturn(null); 6658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.lt("Hi"))).andReturn(null); 6668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsA() { 6708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.isA(String.class))).andReturn(null); 6728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testContains() { 6768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.contains("hi"))).andReturn(null); 6788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 6798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 6808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 6818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAnd() { 6828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 6838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq(true), AndroidMock.eq(true)))) 6848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect( 6868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(AndroidMock.and(AndroidMock.eq((byte) 0), AndroidMock.eq((byte) 0)))) 6878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect( 6898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(AndroidMock.and(AndroidMock.eq((short) 0), AndroidMock.eq((short) 0)))) 6908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq(0), AndroidMock.eq(0)))) 6928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq(0L), AndroidMock.eq(0L)))) 6948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq(0.0), AndroidMock.eq(0.0)))) 6968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq(0.0f), AndroidMock.eq(0.0f)))) 6988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 6998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq("hi"), AndroidMock.eq("hi")))) 7008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.and(AndroidMock.eq('a'), AndroidMock.eq('a')))) 7028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testOr() { 7078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq(true), AndroidMock.eq(true)))) 7098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect( 7118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(AndroidMock.or(AndroidMock.eq((byte) 0), AndroidMock.eq((byte) 0)))) 7128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect( 7148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(AndroidMock.or(AndroidMock.eq((short) 0), AndroidMock.eq((short) 0)))) 7158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq(0), AndroidMock.eq(0)))) 7178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq(0L), AndroidMock.eq(0L)))) 7198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq(0.0), AndroidMock.eq(0.0)))) 7218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq(0.0f), AndroidMock.eq(0.0f)))) 7238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq("hi"), AndroidMock.eq("hi")))) 7258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.or(AndroidMock.eq('a'), AndroidMock.eq('a')))) 7278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 7288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testNot() { 7328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq(true)))).andReturn(null); 7348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq((byte) 0)))).andReturn(null); 7358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq((short) 0)))).andReturn(null); 7368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq(0)))).andReturn(null); 7378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq(0L)))).andReturn(null); 7388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq(0.0)))).andReturn(null); 7398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq(0.0f)))).andReturn(null); 7408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq("hi")))).andReturn(null); 7418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.not(AndroidMock.eq('a')))).andReturn(null); 7428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testEq() { 7468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(true))).andReturn(null); 7488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq((byte) 0))).andReturn(null); 7498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq((short) 0))).andReturn(null); 7508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0))).andReturn(null); 7518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0L))).andReturn(null); 7528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0.0))).andReturn(null); 7538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0.0f))).andReturn(null); 7548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0.0, 0.1))).andReturn(null); 7558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq(0.0f, 0.1f))).andReturn(null); 7568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq("hi"))).andReturn(null); 7578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.eq('a'))).andReturn(null); 7588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAryEq() { 7628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new boolean[] {true}))).andReturn(null); 7648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new byte[] {(byte) 0}))).andReturn(null); 7658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new short[] {(short) 0}))).andReturn(null); 7668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new int[] {0}))).andReturn(null); 7678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new long[] {0L}))).andReturn(null); 7688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new double[] {0.0}))).andReturn(null); 7698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new float[] {0.0f}))).andReturn(null); 7708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new String[] {"hi"}))).andReturn(null); 7718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.aryEq(new char[] {'a'}))).andReturn(null); 7728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testIsNull() { 7768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.isNull())).andReturn(null); 7788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testNotNull() { 7828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.notNull())).andReturn(null); 7848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testFind() { 7888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.find("hi"))).andReturn(null); 7908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testMatches() { 7948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 7958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.matches("hi"))).andReturn(null); 7968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 7978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 7988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 7998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testStartsWith() { 8008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.startsWith("hi"))).andReturn(null); 8028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testEndsWith() { 8068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.endsWith("hi"))).andReturn(null); 8088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testSame() { 8128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.same("hi"))).andReturn(null); 8148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCmpEq() { 8188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.cmpEq("hi"))).andReturn(null); 8208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCmp() { 8248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect( 8268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(AndroidMock.cmp("hi", String.CASE_INSENSITIVE_ORDER, LogicalOperator.EQUAL))) 8278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal .andReturn(null); 8288da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8298da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8308da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8318da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testCapture() { 8328da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8338da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Byte>()))).andReturn(null); 8348da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Character>()))).andReturn(null); 8358da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Double>()))).andReturn(null); 8368da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Float>()))).andReturn(null); 8378da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Integer>()))).andReturn(null); 8388da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<Long>()))).andReturn(null); 8398da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(AndroidMock.capture(new Capture<String>()))).andReturn(null); 8408da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8418da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8428da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8438da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testReportMatcher() { 8448da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8458da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.reportMatcher(new Equals(null)); 8468da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(null)).andReturn(null); 8478da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8488da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8498da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8508da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testGetCurrentArguments() { 8518da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8528da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockMap.get(null)).andAnswer(new IAnswer() { 8538da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal @Override 8548da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public Object answer() { 8558da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.getCurrentArguments(); 8568da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return null; 8578da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8588da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal }); 8598da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8608da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockMap.get(null); 8618da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8628da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8638da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testMakeThreadSafe() { 8648da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal Map<?, ?> mockMap = AndroidMock.createMock(Map.class); 8658da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.makeThreadSafe(mockMap, false); 8668da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockMap); 8678da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8688da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8698da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAndThrowsOnMockedInterface() throws IOException { 8708da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal ObjectInput mockInStream = AndroidMock.createMock(ObjectInput.class); 8718da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockInStream.read()).andThrow(new IOException("foo")); 8728da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockInStream); 8738da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 8748da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockInStream.read(); 8758da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("IOException not thrown"); 8768da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IOException e) { 8778da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("foo", e.getMessage()); 8788da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8798da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockInStream); 8808da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8818da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8828da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void testAndThrowsOnMockedClass() throws IOException, ClassNotFoundException, 8838da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal CannotCompileException, NotFoundException { 8848da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal List<GeneratedClassFile> mockClasses = 8858da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal new AndroidMockGenerator().createMocksForClass(InputStream.class); 8868da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal compileClasses(mockClasses); 8878da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal InputStream mockInStream = AndroidMock.createMock(InputStream.class); 8888da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.expect(mockInStream.read()).andThrow(new IOException("foo")); 8898da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.replay(mockInStream); 8908da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 8918da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal mockInStream.read(); 8928da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal fail("IOException not thrown"); 8938da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (IOException e) { 8948da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal assertEquals("foo", e.getMessage()); 8958da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8968da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal AndroidMock.verify(mockInStream); 8978da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 8988da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 8998da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal /** 9008da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * Used for testing that a given method on Android Mock calls the equivalent 9018da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * method on EasyMock, to ensure that the method-wiring of Android Mock is 9028da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * correct. 9038da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * 9048da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal * @author swoodward@google.com (Stephen Woodward) 9058da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal */ 9068da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal class MethodVerifier extends ExprEditor { 9078da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private CtMethod expectedMethod; 9088da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal private boolean methodCalled; 9098da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 9108da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal MethodVerifier(CtMethod expectedMethod) { 9118da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal this.expectedMethod = expectedMethod; 9128da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 9138da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 9148da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal @Override 9158da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public void edit(MethodCall calledMethod) { 9168da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal try { 9178da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal methodCalled = methodCalled || expectedMethod.equals(calledMethod.getMethod()); 9188da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } catch (NotFoundException e) { 9198da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal throw new RuntimeException(e); 9208da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 9218da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 9228da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal 9238da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal public boolean expectedMethodCalled() { 9248da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal return methodCalled; 9258da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 9268da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal } 9278da3e6ec64b991f5aa1e6561941d130683eba753Luis Sigal} 928