package slacknotifications.teamcity.settings; import jetbrains.buildServer.serverSide.SBuildType; import org.jdom.Element; import org.jdom.JDOMException; import org.junit.Before; import org.junit.Test; import slacknotifications.teamcity.MockSBuildType; import slacknotifications.testframework.util.ConfigLoaderUtil; import java.io.File; import java.io.IOException; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class SlackNotificationConfigTestForBuildTypeSpecifics { SlackNotificationConfig slacknotificationAllBuilds; SlackNotificationConfig slacknotificationSpecificBuilds; SBuildType sBuildType = new MockSBuildType("Test Build", "A Test Build", "bt1"); SBuildType sBuildType02 = new MockSBuildType("Test Build", "A Test Build", "bt2"); SBuildType sBuildType03 = new MockSBuildType("Test Build", "A Test Build", "bt3"); @Before public void setup() throws JDOMException, IOException{ slacknotificationSpecificBuilds = ConfigLoaderUtil.getFirstSlackNotificationInConfig(new File("src/test/resources/project-settings-test-all-states-enabled-with-specific-builds.xml")); slacknotificationAllBuilds = ConfigLoaderUtil.getFirstSlackNotificationInConfig(new File("src/test/resources/project-settings-test-all-states-enabled.xml")); } @Test public void testGetBuildTypeEnabled() { assertTrue(slacknotificationSpecificBuilds.isEnabledForBuildType(sBuildType)); assertTrue(slacknotificationSpecificBuilds.isEnabledForBuildType(sBuildType02)); assertFalse(slacknotificationSpecificBuilds.isEnabledForBuildType(sBuildType03)); assertTrue(slacknotificationAllBuilds.isEnabledForBuildType(sBuildType)); assertTrue(slacknotificationAllBuilds.isEnabledForBuildType(sBuildType02)); assertTrue(slacknotificationAllBuilds.isEnabledForBuildType(sBuildType03)); } @Test public void testGetAsElementSpecific() { Element e = slacknotificationSpecificBuilds.getAsElement(); SlackNotificationConfig whc = new SlackNotificationConfig(e); assertTrue(whc.isEnabledForBuildType(sBuildType)); assertTrue(whc.isEnabledForBuildType(sBuildType02)); assertFalse(whc.isEnabledForBuildType(sBuildType03)); } @Test public void testGetAsElementAll() { Element e = slacknotificationAllBuilds.getAsElement(); SlackNotificationConfig whc = new SlackNotificationConfig(e); assertTrue(whc.isEnabledForBuildType(sBuildType)); assertTrue(whc.isEnabledForBuildType(sBuildType02)); assertTrue(whc.isEnabledForBuildType(sBuildType03)); } }