blob: d02872d7ff7ae539d4c1a7052fa6ceb4a932d03d [file] [log] [blame]
/*-
* Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
*
* This file was distributed by Oracle as part of a version of Oracle Berkeley
* DB Java Edition made available at:
*
* http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
*
* Please see the LICENSE file included in the top-level directory of the
* appropriate version of Oracle Berkeley DB Java Edition for a copy of the
* license and additional information.
*/
package com.sleepycat.je.utilint;
import java.io.IOException;
/**
* TestHook is used to induce testing behavior that can't be provoked
* externally. For example, unit tests may use hooks to throw IOExceptions, or
* to cause waiting behavior.
*
* To use this, a unit test should implement TestHook with a class that
* overrides the desired method. The desired code will have a method that
* allows the unit test to specify a hook, and will execute the hook if it is
* non-null. This should be done within an assert like so:
*
* assert TestHookExecute(myTestHook);
*
* See Tree.java for examples.
*/
public interface TestHook<T> {
public void hookSetup();
public void doIOHook()
throws IOException;
public void doHook();
public void doHook(T obj);
public T getHookValue();
}