package com.liveramp.hank.config.yaml; import com.liveramp.hank.test.BaseTestCase; import com.liveramp.hank.test.coordinator.MockRingGroup; import com.liveramp.hank.monitor.notifier.Notifier; import com.liveramp.hank.monitor.notifier.mock.MockNotifier; import org.junit.Test; import java.io.FileWriter; import java.io.PrintWriter; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class TestYamlMonitorConfigurator extends BaseTestCase { private final String configPath = localTmpDir + "/config.yml"; @Test public void testIt() throws Exception { PrintWriter pw = new PrintWriter(new FileWriter(configPath)); pw.println("monitor:"); pw.println(" web_ui_url: http://hank_web_ui_url"); pw.println(" notifier_configurations:"); pw.println(" notifier1:"); pw.println(" factory: com.liveramp.hank.monitor.notifier.mock.MockNotifierFactory"); pw.println(" configuration:"); pw.println(" b: b"); pw.println(" notifier2:"); pw.println(" factory: com.liveramp.hank.monitor.notifier.mock.MockNotifierFactory"); pw.println(" configuration:"); pw.println(" c: c"); pw.println(" global_notifier_configurations:"); pw.println(" - notifier1"); pw.println(" ring_group_notifier_configurations:"); pw.println(" rg1:"); pw.println(" - notifier1"); pw.println(" - notifier2"); pw.println(" rg2:"); pw.println(" - notifier2"); pw.close(); YamlMonitorConfigurator configurator = new YamlMonitorConfigurator(configPath); Notifier globalNotifier = configurator.getGlobalNotifiers().get(0); assertTrue(globalNotifier instanceof MockNotifier); assertEquals("b", ((MockNotifier) globalNotifier).getConfiguration().get("b")); List<Notifier> ringNotifiers1 = configurator.getRingGroupNotifiers(new MockRingGroup(null, "rg1", null)); Notifier ringNotifier11 = ringNotifiers1.get(0); Notifier ringNotifier12 = ringNotifiers1.get(1); assertTrue(ringNotifier11 instanceof MockNotifier); assertTrue(ringNotifier12 instanceof MockNotifier); assertEquals("b", ((MockNotifier) ringNotifier11).getConfiguration().get("b")); assertEquals("c", ((MockNotifier) ringNotifier12).getConfiguration().get("c")); List<Notifier> ringNotifiers2 = configurator.getRingGroupNotifiers(new MockRingGroup(null, "rg2", null)); Notifier ringNotifier22 = ringNotifiers2.get(0); assertTrue(ringNotifier22 instanceof MockNotifier); assertEquals("c", ((MockNotifier) ringNotifier22).getConfiguration().get("c")); } }