package hudson.plugins.emailext.plugins.trigger;
import hudson.plugins.emailext.plugins.EmailTrigger;
import org.junit.Test;
import java.io.IOException;
import static hudson.model.Result.FAILURE;
import static hudson.model.Result.SUCCESS;
/**
* @author Kanstantsin Shautsou
*/
public class XNthFailureTriggerTest extends TriggerTestBase {
@Override
EmailTrigger newInstance() {
XNthFailureTrigger trigger = new XNthFailureTrigger(recProviders, "", "", "", "", "", 0, "project");
trigger.setRequiredFailureCount(3);
return trigger;
}
@Test
public void testTrigger_success()
throws IOException, InterruptedException {
assertNotTriggered(SUCCESS);
assertNotTriggered(SUCCESS, SUCCESS);
assertNotTriggered(SUCCESS, SUCCESS, SUCCESS);
assertNotTriggered(SUCCESS, SUCCESS, SUCCESS, SUCCESS);
}
@Test
public void testTrigger_thirdFailureAfterSuccess()
throws IOException, InterruptedException {
assertTriggered(FAILURE, SUCCESS, FAILURE, FAILURE, FAILURE);
}
@Test
public void testTrigger_thirdBuildFails()
throws IOException, InterruptedException {
assertTriggered(FAILURE, FAILURE, FAILURE);
assertTriggered(SUCCESS, FAILURE, FAILURE, FAILURE);
}
@Test
public void testTrigger_failure()
throws IOException, InterruptedException {
assertNotTriggered(FAILURE);
assertNotTriggered(FAILURE, FAILURE);
assertNotTriggered(SUCCESS, FAILURE, FAILURE);
assertNotTriggered(SUCCESS, FAILURE, FAILURE, SUCCESS);
}
}