/* * Copyright (c) 2006-2011 Rogério Liesenfeld * This file is subject to the terms of the MIT license (see LICENSE.txt). */ package mockit; import org.junit.*; import static org.junit.Assert.*; public final class MockInvocationTest { static class Collaborator { int value; Collaborator() {} Collaborator(int i) { value = i; } int getValue() { return -1; } String doSomething(boolean b, int[] i, String s) { return s + b + i[0]; } static boolean staticMethod() { return true; } } @Ignore @Test public void mockMethodWithContextObject() { new MockUp<Collaborator>() { @Mock boolean staticMethod(Invocation context) { assertTrue(context.getInvokedInstance() instanceof Collaborator); assertEquals(context.getInvocationCount() - 1, context.getInvocationIndex()); assertEquals(0, context.getMinInvocations()); assertEquals(-1, context.getMaxInvocations()); return context.getInvocationCount() <= 0; } }; assertFalse(Collaborator.staticMethod()); assertFalse(Collaborator.staticMethod()); } @MockClass(realClass = Collaborator.class) static class MockForConstructor { int capturedArgument; @Mock(invocations = 1) void $init(Invocation context, int i) { assertTrue(context.getInvokedInstance() instanceof Collaborator); assertEquals(1, context.getMinInvocations()); assertEquals(1, context.getMaxInvocations()); capturedArgument = i + context.getInvocationCount(); } } @Ignore @Test public void mockForConstructorWithContext() { MockForConstructor mock = new MockForConstructor(); Mockit.setUpMocks(MockForConstructor.class); new Collaborator(4); assertEquals(5, mock.capturedArgument); } }