/* * Copyright 2001-2009 OFFIS, Tammo Freese * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.easymock; /** * Controls all the mock objects created by it. * For details, see the EasyMock documentation. */ public interface IMocksControl { /** * Creates a mock object that implements the given interface. * @param the interface that the mock object should implement. * @param toMock the class of the interface that the mock object should implement. * @return the mock object. */ T createMock(Class toMock); /** * Creates a mock object that implements the given interface. * @param name the name of the mock object . * @param toMock the class of the interface that the mock object should implement. * @param the interface that the mock object should implement. * @return the mock object. * @throws IllegalArgumentException if the name is not a valid Java identifier. */ T createMock(String name, Class toMock); /** * Removes all expectations for the mock objects of this control. */ void reset(); /** * Removes all expectations for the mock objects of this control and turn * them to nice mocks. */ void resetToNice(); /** * Removes all expectations for the mock objects of this control and turn * them to default mocks. */ void resetToDefault(); /** * Removes all expectations for the mock objects of this control and turn * them to strict mocks. */ void resetToStrict(); /** * Switches the control from record mode to replay mode. */ void replay(); /** * Verifies that all expectations were met. */ void verify(); /** * Switches order checking on and off. * @param state true switches order checking on, false switches it off. */ void checkOrder(boolean state); /** * Makes the mock thread safe. * * @param threadSafe If the mock should be thread safe or not */ void makeThreadSafe(boolean threadSafe); /** * Check that the mock is called from only one thread * * @param shouldBeUsedInOneThread * If it should be used in one thread only or not */ void checkIsUsedInOneThread(boolean shouldBeUsedInOneThread); }