package com.intrbiz.bergamot.engine.slack;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import com.intrbiz.bergamot.config.NotificationEngineCfg;
import com.intrbiz.bergamot.io.BergamotTranscoder;
import com.intrbiz.bergamot.model.message.notification.SendAlert;
import com.intrbiz.bergamot.model.message.notification.SendRecovery;
import com.intrbiz.bergamot.notification.engine.slack.SlackEngine;
public class SlackEngineTest
{
public static void main(String[] args) throws Exception
{
BasicConfigurator.configure();
Logger.getRootLogger().setLevel(Level.TRACE);
SlackEngine slack = new SlackEngine();
slack.configure(new NotificationEngineCfg());
// our dummy alert
SendAlert alert = loadMessage(SendAlert.class, "alert/service.json");
alert.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(alert);
// our dummy recovery
SendRecovery recovery = loadMessage(SendRecovery.class, "recovery/service.json");
recovery.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(recovery);
// our dummy alert
alert = loadMessage(SendAlert.class, "alert/host.json");
alert.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(alert);
// our dummy recovery
recovery = loadMessage(SendRecovery.class, "recovery/host.json");
recovery.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(recovery);
// our dummy alert
alert = loadMessage(SendAlert.class, "alert/cluster.json");
alert.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(alert);
// our dummy recovery
recovery = loadMessage(SendRecovery.class, "recovery/cluster.json");
recovery.getTo().get(0).getTeams().get(0).addParameter("slack.url", System.getProperty("slack.url"));
slack.sendNotification(recovery);
// exit
Thread.sleep(1000);
System.exit(0);
}
private static <T> T loadMessage(Class<T> type, String name)
{
BergamotTranscoder transcoder = new BergamotTranscoder();
return transcoder.decode(Thread.currentThread().getContextClassLoader().getResourceAsStream(name), type);
}
}