1 5 package org.easymock.tests; 6 7 import junit.framework.AssertionFailedError; 8 import junit.framework.TestCase; 9 10 import org.easymock.MockControl; 11 12 public class UsageTest extends TestCase { 13 14 MockControl<IMethods> control; 15 16 IMethods mock; 17 18 protected void setUp() { 19 control = MockControl.createControl(IMethods.class); 20 mock = control.getMock(); 21 } 22 23 public void testExactCallCountByLastCall() { 24 mock.oneArgumentMethod(false); 25 control.setReturnValue("Test"); 26 control.setReturnValue("Test2"); 27 28 control.replay(); 29 30 assertEquals("Test", mock.oneArgumentMethod(false)); 31 assertEquals("Test2", mock.oneArgumentMethod(false)); 32 33 boolean failed = false; 34 try { 35 mock.oneArgumentMethod(false); 36 } catch (AssertionFailedError expected) { 37 failed = true; 38 } 39 if (!failed) 40 fail("expected AssertionFailedError"); 41 } 42 43 public void testOpenCallCountByLastCall() { 44 mock.oneArgumentMethod(false); 45 control.setReturnValue("Test"); 46 control.setReturnValue("Test2", MockControl.ONE_OR_MORE); 47 48 control.replay(); 49 50 assertEquals("Test", mock.oneArgumentMethod(false)); 51 assertEquals("Test2", mock.oneArgumentMethod(false)); 52 assertEquals("Test2", mock.oneArgumentMethod(false)); 53 } 54 55 public void testExactCallCountByLastThrowable() { 56 mock.oneArgumentMethod(false); 57 control.setReturnValue("Test"); 58 control.setReturnValue("Test2"); 59 control.setThrowable(new IndexOutOfBoundsException (), 1); 60 61 control.replay(); 62 63 assertEquals("Test", mock.oneArgumentMethod(false)); 64 assertEquals("Test2", mock.oneArgumentMethod(false)); 65 66 try { 67 mock.oneArgumentMethod(false); 68 } catch (IndexOutOfBoundsException expected) { 69 } 70 71 boolean failed = true; 72 try { 73 try { 74 mock.oneArgumentMethod(false); 75 } catch (IndexOutOfBoundsException expected) { 76 } 77 failed = false; 78 } catch (AssertionFailedError expected) { 79 } 80 if (!failed) 81 fail("expected AssertionFailedError"); 82 } 83 84 public void testOpenCallCountByLastThrowable() { 85 mock.oneArgumentMethod(false); 86 control.setReturnValue("Test"); 87 control.setReturnValue("Test2"); 88 control.setThrowable(new IndexOutOfBoundsException (), 89 MockControl.ONE_OR_MORE); 90 91 control.replay(); 92 93 assertEquals("Test", mock.oneArgumentMethod(false)); 94 assertEquals("Test2", mock.oneArgumentMethod(false)); 95 96 try { 97 mock.oneArgumentMethod(false); 98 } catch (IndexOutOfBoundsException expected) { 99 } 100 try { 101 mock.oneArgumentMethod(false); 102 } catch (IndexOutOfBoundsException expected) { 103 } 104 } 105 106 public void testMoreThanOneArgument() { 107 mock.threeArgumentMethod(1, "2", "3"); 108 control.setReturnValue("Test", 2); 109 110 control.replay(); 111 112 assertEquals("Test", mock.threeArgumentMethod(1, "2", "3")); 113 114 boolean failed = true; 115 try { 116 control.verify(); 117 failed = false; 118 } catch (AssertionFailedError expected) { 119 assertEquals( 120 "\n Expectation failure on verify:" 121 + "\n threeArgumentMethod(1, \"2\", \"3\"): expected: 2, actual: 1", 122 expected.getMessage()); 123 } 124 if (!failed) { 125 fail("exception expected"); 126 } 127 } 128 129 public void testUnexpectedCallWithArray() { 130 control.reset(); 131 control.setDefaultMatcher(MockControl.ARRAY_MATCHER); 132 control.replay(); 133 boolean failed = false; 134 String [] strings = new String [] { "Test" }; 135 try { 136 mock.arrayMethod(strings); 137 } catch (AssertionFailedError expected) { 138 failed = true; 139 assertEquals("\n Unexpected method call arrayMethod([\"Test\"]):" 140 + "\n arrayMethod([\"Test\"]): expected: 0, actual: 1", 141 expected.getMessage()); 142 } 143 if (!failed) { 144 fail("exception expected"); 145 } 146 147 } 148 149 public void testWrongArguments() { 150 mock.simpleMethodWithArgument("3"); 151 control.replay(); 152 153 try { 154 mock.simpleMethodWithArgument("5"); 155 fail(); 156 } catch (AssertionFailedError expected) { 157 assertEquals( 158 "\n Unexpected method call simpleMethodWithArgument(\"5\"):" 159 + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1" 160 + "\n simpleMethodWithArgument(\"3\"): expected: 1, actual: 0", 161 expected.getMessage()); 162 } 163 164 } 165 166 public void testSummarizeSameObjectArguments() { 167 mock.simpleMethodWithArgument("3"); 168 mock.simpleMethodWithArgument("3"); 169 control.replay(); 170 171 try { 172 mock.simpleMethodWithArgument("5"); 173 fail(); 174 } catch (AssertionFailedError expected) { 175 assertEquals( 176 "\n Unexpected method call simpleMethodWithArgument(\"5\"):" 177 + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1" 178 + "\n simpleMethodWithArgument(\"3\"): expected: 2, actual: 0", 179 expected.getMessage()); 180 } 181 182 } 183 184 public void testArgumentsOrdered() { 185 mock.simpleMethodWithArgument("4"); 186 mock.simpleMethodWithArgument("3"); 187 mock.simpleMethodWithArgument("2"); 188 mock.simpleMethodWithArgument("0"); 189 mock.simpleMethodWithArgument("1"); 190 control.replay(); 191 192 try { 193 mock.simpleMethodWithArgument("5"); 194 fail(); 195 } catch (AssertionFailedError expected) { 196 assertEquals( 197 "\n Unexpected method call simpleMethodWithArgument(\"5\"):" 198 + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1" 199 + "\n simpleMethodWithArgument(\"4\"): expected: 1, actual: 0" 200 + "\n simpleMethodWithArgument(\"3\"): expected: 1, actual: 0" 201 + "\n simpleMethodWithArgument(\"2\"): expected: 1, actual: 0" 202 + "\n simpleMethodWithArgument(\"0\"): expected: 1, actual: 0" 203 + "\n simpleMethodWithArgument(\"1\"): expected: 1, actual: 0", 204 expected.getMessage()); 205 } 206 207 } 208 209 }
| Popular Tags
|