|
EasyMock example source code file (UsageStrictMockTest.java)
The EasyMock UsageStrictMockTest.java source code
/*
* Copyright (c) 2001-2007 OFFIS, Tammo Freese.
* This program is made available under the terms of the MIT License.
*/
package org.easymock.tests;
import static org.junit.Assert.*;
import org.easymock.MockControl;
import org.easymock.internal.ReplayState;
import org.junit.Before;
import org.junit.Test;
public class UsageStrictMockTest {
private MockControl<IMethods> control;
private IMethods mock;
@Before
public void setup() {
control = MockControl.createStrictControl(IMethods.class);
mock = control.getMock();
mock.simpleMethodWithArgument("1");
mock.simpleMethodWithArgument("2");
control.replay();
}
@Test
public void verify() {
control.reset();
control.replay();
control.verify();
}
@Test
public void orderedCallsSucces() {
mock.simpleMethodWithArgument("1");
mock.simpleMethodWithArgument("2");
control.verify();
}
@Test
public void unorderedCallsFailure() {
boolean failed = false;
try {
mock.simpleMethodWithArgument("2");
} catch (AssertionError expected) {
failed = true;
}
if (!failed) {
fail("unordered calls accepted");
}
}
@Test
public void tooManyCallsFailure() {
mock.simpleMethodWithArgument("1");
mock.simpleMethodWithArgument("2");
boolean failed = false;
try {
mock.simpleMethodWithArgument("2");
} catch (AssertionError expected) {
failed = true;
}
if (!failed) {
fail("too many calls accepted");
}
}
@Test
public void tooFewCallsFailure() {
mock.simpleMethodWithArgument("1");
boolean failed = false;
try {
control.verify();
} catch (AssertionError expected) {
failed = true;
assertTrue("stack trace must be filled in", Util.getStackTrace(
expected).indexOf(ReplayState.class.getName()) == -1);
}
if (!failed) {
fail("too few calls accepted");
}
}
@Test
public void differentMethods() {
control.reset();
mock.booleanReturningMethod(0);
control.setReturnValue(true);
mock.simpleMethod();
mock.booleanReturningMethod(1);
control.setReturnValue(false, 2, 3);
mock.simpleMethod();
control.setVoidCallable(MockControl.ONE_OR_MORE);
control.replay();
assertEquals(true, mock.booleanReturningMethod(0));
mock.simpleMethod();
boolean failed = false;
try {
control.verify();
} catch (AssertionError expected) {
failed = true;
assertEquals(
"\n Expectation failure on verify:"
+ "\n simpleMethod(): expected: 1, actual: 1"
+ "\n booleanReturningMethod(1): expected: between 2 and 3, actual: 0"
+ "\n simpleMethod(): expected: at least 1, actual: 0",
expected.getMessage());
}
if (!failed) {
fail("too few calls accepted");
}
assertEquals(false, mock.booleanReturningMethod(1));
failed = false;
try {
mock.simpleMethod();
} catch (AssertionError expected) {
failed = true;
assertEquals(
"\n Unexpected method call simpleMethod():"
+ "\n booleanReturningMethod(1): expected: between 2 and 3, actual: 1",
expected.getMessage());
}
if (!failed) {
fail("wrong call accepted");
}
}
@Test
public void range() {
control.reset();
mock.booleanReturningMethod(0);
control.setReturnValue(true);
mock.simpleMethod();
mock.booleanReturningMethod(1);
control.setReturnValue(false, 2, 3);
mock.simpleMethod();
control.setVoidCallable(MockControl.ONE_OR_MORE);
mock.booleanReturningMethod(1);
control.setReturnValue(false);
control.replay();
mock.booleanReturningMethod(0);
mock.simpleMethod();
mock.booleanReturningMethod(1);
mock.booleanReturningMethod(1);
mock.booleanReturningMethod(1);
boolean failed = false;
try {
mock.booleanReturningMethod(1);
} catch (AssertionError expected) {
failed = true;
assertEquals(
"\n Unexpected method call booleanReturningMethod(1):"
+ "\n booleanReturningMethod(1): expected: between 2 and 3, actual: 3 (+1)"
+ "\n simpleMethod(): expected: at least 1, actual: 0",
expected.getMessage());
}
if (!failed) {
fail("too many calls accepted");
}
}
@Test
public void defaultBehavior() {
control.reset();
mock.booleanReturningMethod(1);
control.setReturnValue(true);
control.setReturnValue(false);
control.setReturnValue(true);
control.setDefaultReturnValue(true);
control.replay();
assertEquals(true, mock.booleanReturningMethod(2));
assertEquals(true, mock.booleanReturningMethod(3));
assertEquals(true, mock.booleanReturningMethod(1));
assertEquals(false, mock.booleanReturningMethod(1));
assertEquals(true, mock.booleanReturningMethod(3));
boolean failed = false;
try {
control.verify();
} catch (AssertionError expected) {
failed = true;
assertEquals(
"\n Expectation failure on verify:"
+ "\n booleanReturningMethod(1): expected: 3, actual: 2",
expected.getMessage());
}
if (!failed) {
fail("too few calls accepted");
}
}
@Test
public void unexpectedCallWithArray() {
control.reset();
control.setDefaultMatcher(MockControl.ARRAY_MATCHER);
mock.arrayMethod(new String[] { "Test", "Test 2" });
control.replay();
boolean failed = false;
String[] strings = new String[] { "Test" };
try {
mock.arrayMethod(strings);
} catch (AssertionError expected) {
failed = true;
assertEquals(
"\n Unexpected method call arrayMethod("
+ strings.toString()
+ "):"
+ "\n arrayMethod([\"Test\", \"Test 2\"]): expected: 1, actual: 0",
expected.getMessage());
}
if (!failed) {
fail("exception expected");
}
}
}
Other EasyMock examples (source code examples)Here is a short list of links related to this EasyMock UsageStrictMockTest.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.