package org.stagemonitor.alerting.alerter;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.junit.Test;
import org.slf4j.Logger;
import org.stagemonitor.alerting.check.CheckResult;
import org.stagemonitor.alerting.incident.Incident;
public class LogAlerterTest extends AbstractAlerterTest {
private LogAlerter logAlerter;
private Logger logger;
private AlertSender alertSender;
public LogAlerterTest() {
super();
logger = mock(Logger.class);
logAlerter = new LogAlerter(alertingPlugin, logger);
this.alertSender = createAlertSender(logAlerter);
}
@Test
public void testLogAlert() throws Exception {
Incident incident = alertSender.sendTestAlert(createSubscription(logAlerter), CheckResult.Status.ERROR);
verify(logger).error(eq(String.format("Incident for check 'Test Check':\n" +
"First failure: %s\n" +
"Old status: OK\n" +
"New status: ERROR\n" +
"Failing check: 1\n" +
"Hosts: testHost\n" +
"Instances: testInstance\n" +
"\n" +
"Details:\n" +
"Host:\t\t\ttestHost\n" +
"Instance:\t\ttestInstance\n" +
"Status: \t\tERROR\n" +
"Description:\ttest\n" +
"Current value:\t10\n" +
"\n", toFreemarkerIsoLocal(incident.getFirstFailureAt()))));
}
}