I need to write a unit test for this piece of code. I am just learning how to write unit tests.I want to know what are the test cases that can be written for following class specially for
public void delay()
method. it contains Thread.sleep() method.
import org.apache.log4j.Logger;
public abstract class AbstractDelayService<T> implements DelayService<T>
{
private static Logger log = Logger.getLogger(AbstractDelayServiceTest.class);
protected DelayFunction delayFunction;
protected FailureCounter<T> failureCounter;
public AbstractDelayService(DelayFunction delayFunction, FailureCounter<T> failureCouner)
{
this.delayFunction = delayFunction;
this.failureCounter = failureCouner;
}
@Override
public void delay()
{
long delay = delayFunction.getDelay();
log.info("Delaying lookup of" + " by " + delay + " ms");
try
{
Thread.sleep(delay);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
@Override
public void reportSendSuccess(T key)
{
failureCounter.reportSendSuccess(key);
}
@Override
public void reportSendFailure(T key)
{
failureCounter.reportSendFailure(key);
}
}