package com.intrbiz.bergamot.notification.engine.sms; 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.ContactMO; import com.intrbiz.bergamot.model.message.notification.CheckNotification; import com.intrbiz.bergamot.model.message.notification.SendAlert; import com.intrbiz.bergamot.model.message.notification.SendRecovery; import com.intrbiz.configuration.CfgParameter; public class SMSEngineTests { public static void main(String[] args) throws Exception { BasicConfigurator.configure(); Logger.getRootLogger().setLevel(Level.TRACE); SMSEngine slack = new SMSEngine(); NotificationEngineCfg cfg = new NotificationEngineCfg(); cfg.addParameter(new CfgParameter("from", "", System.getProperty("from"))); cfg.addParameter(new CfgParameter("transport", "", System.getProperty("transport"))); cfg.addParameter(new CfgParameter("twilio.account", "", System.getProperty("twilio.account"))); cfg.addParameter(new CfgParameter("twilio.token", "", System.getProperty("twilio.token"))); cfg.addParameter(new CfgParameter("aws.accessKeyId", "", System.getProperty("aws.accessKeyId"))); cfg.addParameter(new CfgParameter("aws.secretKey", "", System.getProperty("aws.secretKey"))); slack.configure(cfg); // our to test number String to = System.getProperty("to"); // our dummy alert SendAlert alert = forceToNumber(to, 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 = forceToNumber(to, 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 = forceToNumber(to, 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 = forceToNumber(to, 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 = forceToNumber(to, 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 = forceToNumber(to, 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 extends CheckNotification> T forceToNumber(String to, T notification) { for (ContactMO contact : notification.getTo()) { contact.setPager(to); contact.setMobile(to); } return notification; } private static <T> T loadMessage(Class<T> type, String name) { BergamotTranscoder transcoder = new BergamotTranscoder(); return transcoder.decode(Thread.currentThread().getContextClassLoader().getResourceAsStream(name), type); } }