|
EasyMock example source code file (ArgumentsMatcherTest.java)
The EasyMock ArgumentsMatcherTest.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.AbstractMatcher; import org.easymock.ArgumentsMatcher; import org.easymock.MockControl; import org.junit.Before; import org.junit.Test; public class ArgumentsMatcherTest { MockControl<IMethods> control; IMethods mock; @Before public void setUp() { control = MockControl.createStrictControl(IMethods.class); mock = control.getMock(); } @Test public void expectedArgumentsDelegatedToMatcher() { mock.twoArgumentMethod(0, 5); control.setMatcher(new AbstractMatcher() { @Override public boolean matches(Object[] expected, Object[] actual) { assertEquals(0, ((Integer) expected[0]).intValue()); assertEquals(5, ((Integer) expected[1]).intValue()); assertEquals(1, ((Integer) actual[0]).intValue()); assertEquals(6, ((Integer) actual[1]).intValue()); return true; } }); mock.simpleMethod(); control.replay(); mock.twoArgumentMethod(1, 6); mock.simpleMethod(); control.verify(); } @Test public void expectedArgumentsDelegatedToMatcher2() { mock.threeArgumentMethod(7, "", "A test"); control.setMatcher(new AbstractMatcher() { @Override public boolean matches(Object[] expected, Object[] actual) { int expectedInt = ((Integer) expected[0]).intValue(); int actualInt = ((Integer) actual[0]).intValue(); return expectedInt < actualInt; } }); control.setReturnValue("1"); mock.threeArgumentMethod(6, "", "A test"); control.setReturnValue("2"); mock.threeArgumentMethod(12, "", "A test"); control.setReturnValue("3"); control.replay(); mock.threeArgumentMethod(9, "test", "test"); mock.threeArgumentMethod(8, "test", "test"); mock.threeArgumentMethod(13, "test", "test"); control.verify(); } @Test public void errorString() { mock.twoArgumentMethod(0, 5); control.setMatcher(new ArgumentsMatcher() { public boolean matches(Object[] expected, Object[] actual) { return false; } public String toString(Object[] arguments) { return "<<" + arguments[0] + ">>"; } }); control.replay(); boolean failed = false; try { mock.twoArgumentMethod(1, 5); } catch (AssertionError expected) { failed = true; assertEquals("\n Unexpected method call twoArgumentMethod(1, 5):" + "\n twoArgumentMethod(<<0>>): expected: 1, actual: 0", expected.getMessage()); } if (!failed) { fail("exception expected"); } } @Test public void settingTheSameMatcherIsOk() { try { mock.twoArgumentMethod(1, 2); control.setMatcher(MockControl.ARRAY_MATCHER); control.setMatcher(MockControl.ARRAY_MATCHER); mock.twoArgumentMethod(1, 2); control.setMatcher(MockControl.ARRAY_MATCHER); } catch (IllegalStateException unexpected) { fail("no exception should be thrown if the same matcher is set twice"); } } @Test public void abstractMatcher() { AbstractMatcher trueMatcher = new AbstractMatcher() { protected boolean parameterMatches(Object expected, Object actual) { return true; } }; Object[] arrayWithNull = new Object[] { null }; Object[] arrayWithObject = new Object[] { new Object() }; assertFalse(trueMatcher.matches(arrayWithNull, arrayWithObject)); assertFalse(trueMatcher.matches(arrayWithObject, arrayWithNull)); } @Test public void abstractMatcherToStringHandlesNullArray() { AbstractMatcher matcher = new AbstractMatcher() { }; assertEquals("", matcher.toString(null)); } } Other EasyMock examples (source code examples)Here is a short list of links related to this EasyMock ArgumentsMatcherTest.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.