blob: a1783fced9906822601c0829c4ee4be034111d78 [file] [log] [blame]
/*
* 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 <T> 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> T createMock(Class<T> 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 <T> the interface that the mock object should implement.
* @return the mock object.
* @throws IllegalArgumentException if the name is not a valid Java identifier.
*/
<T> T createMock(String name, Class<T> 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 <code>true</code> switches order checking on, <code>false</code> 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);
}