package slacknotifications.teamcity.extension;
import jetbrains.buildServer.serverSide.SBuildServer;
import jetbrains.buildServer.serverSide.ServerPaths;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildServer.web.openapi.WebControllerManager;
import org.junit.Ignore;
import org.junit.Test;
import slacknotifications.SlackNotification;
import slacknotifications.teamcity.payload.SlackNotificationPayloadManager;
import slacknotifications.teamcity.settings.SlackNotificationMainConfig;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class SlackNotificationSettingsControllerTest {
SBuildServer sBuildServer = mock(SBuildServer.class);
WebControllerManager webControllerManager = mock(WebControllerManager.class);
@Test
public void createMockNotification_constructsValidNotification(){
String expectedConfigDirectory = ".";
ServerPaths serverPaths = mock(ServerPaths.class);
when(serverPaths.getConfigDir()).thenReturn(expectedConfigDirectory);
PluginDescriptor pluginDescriptor = mock(PluginDescriptor.class);
SlackNotificationMainConfig config = new SlackNotificationMainConfig(serverPaths);
SlackNotificationPayloadManager payloadManager = new SlackNotificationPayloadManager(sBuildServer);
SlackNotifierSettingsController controller = new SlackNotifierSettingsController(
sBuildServer, serverPaths, webControllerManager,
config, payloadManager, pluginDescriptor);
SlackNotification notification = controller.createMockNotification("the team", "#general", "The Bot", "tokenthingy",
SlackNotificationMainConfig.DEFAULT_ICONURL, 5, true, true, true, true, true, null, null, null, null);
assertNotNull(notification);
assertEquals("the team", notification.getTeamName());
assertEquals(SlackNotificationMainConfig.DEFAULT_ICONURL, notification.getIconUrl());
}
}