コード例 #1
0
        public async Task should_say_something_on_channel_then_delete_it()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = await slackConnector.Connect(config.Slack.ApiToken);

            var message = new BotMessage
            {
                Text    = "Test delete this text for INT test",
                ChatHub = connection.ConnectedChannel(config.Slack.TestChannel)
            };

            // when
            var messageResponse = await connection.Say(message);

            // Wait for 2 seconds for dramatic pause
            await Task.Delay(2000);

            // Now delete
            var deleteResponse = await connection.DeleteMessage(messageResponse.Channel, messageResponse.Message.TimeStamp);

            // then
            Assert.That(deleteResponse.Channel == message.ChatHub.Id, Is.True);
        }
コード例 #2
0
        public async Task should_join_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            if (string.IsNullOrEmpty(config.Slack.TestUserName))
            {
                Assert.Inconclusive("TestUserName is missing from config");
            }

            var slackConnector = new SlackConnector();
            var connection     = await slackConnector.Connect(config.Slack.ApiToken);

            var users = await connection.GetUsers();

            string userId = users.First(x => x.Name.Equals(config.Slack.TestUserName, StringComparison.InvariantCultureIgnoreCase)).Id;

            // when
            SlackChatHub result = await connection.JoinDirectMessageChannel(userId);

            // then
            Assert.That(result, Is.Not.Null);

            var dmChannel = connection.ConnectedDM($"@{config.Slack.TestUserName}");

            Assert.That(dmChannel, Is.Not.Null);
            await connection.Say(new BotMessage { ChatHub = dmChannel, Text = "Wuzzup - testing in da haus" });
        }
コード例 #3
0
 static void Main(string[] args)
 {
     Console.Title = "IZSlackBot";
     EnviromentLoader.Load();
     AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnClose);
     SlackConnector.Connect();
     Console.ReadLine();
 }
コード例 #4
0
        protected IntegrationTest()
        {
            Config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();

            SlackConnection = Task.Run(() => slackConnector.Connect(Config.Slack.ApiToken))
                              .GetAwaiter()
                              .GetResult();
        }
コード例 #5
0
        public void SetUp()
        {
            _filePath = Path.GetTempFileName();
            File.WriteAllText(_filePath, EmbeddedResourceFileReader.ReadEmbeddedFileAsText("UploadTest.txt"));

            _config = new ConfigReader().GetConfig();
            var slackConnector = new SlackConnector();

            _slackConnection = slackConnector.Connect(_config.Slack.ApiToken).Result;
        }
コード例 #6
0
            public async void should_connect_and_get_channels()
            {
                // given
                var config         = new ConfigReader().GetConfig();
                var slackConnector = new SlackConnector();

                // when
                var connection = await slackConnector.Connect(config.Slack.ApiToken);

                var channels = await connection.GetChannels();

                // then
                Assert.That(channels.Any(), Is.True);
            }
コード例 #7
0
        public void should_send_typing_indicator()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var          slackConnector = new SlackConnector();
            var          connection     = slackConnector.Connect(config.Slack.ApiToken).Result;
            SlackChatHub channel        = connection.ConnectedChannels().First(x => x.Name.Equals("#-lobby-", StringComparison.InvariantCultureIgnoreCase));

            // when
            connection.IndicateTyping(channel).Wait();

            // then
        }
コード例 #8
0
        public void should_send_typing_indicator()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var          slackConnector = new SlackConnector();
            var          connection     = slackConnector.Connect(config.Slack.ApiToken).Result;
            SlackChatHub channel        = connection.ConnectedChannel(config.Slack.TestChannel);

            // when
            connection.IndicateTyping(channel).Wait();

            // then
        }
コード例 #9
0
            public async void should_connect_and_get_users()
            {
                // given
                var config = new ConfigReader().GetConfig();

                var slackConnector = new SlackConnector();

                // when
                var connection = await slackConnector.Connect(config.Slack.ApiToken);
                var users = await connection.GetUsers();

                // then
                Assert.That(users.Any(u => u.Online == true), Is.True);
            }
コード例 #10
0
            public async void should_connect_and_get_channels()
            {
                // given
                var config = new ConfigReader().GetConfig();

                var slackConnector = new SlackConnector();

                // when
                var connection = await slackConnector.Connect(config.Slack.ApiToken);
                var channels = await connection.GetChannels();

                // then
                Assert.That(channels.Any(), Is.True);
            }
コード例 #11
0
        public void should_join_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection = slackConnector.Connect(config.Slack.ApiToken).Result;

            // when
            SlackChatHub result = connection.JoinDirectMessageChannel(config.Slack.TestUserId).Result;

            // then
            Assert.That(result, Is.Not.Null);
        }
コード例 #12
0
            public async void should_connect_and_get_users()
            {
                // given
                var config         = new ConfigReader().GetConfig();
                var slackConnector = new SlackConnector();

                // when
                var connection = await slackConnector.Connect(config.Slack.ApiToken);

                var users = await connection.GetUsers();

                // then
                Assert.That(users.Any(u => u.Online == true), Is.True);
            }
コード例 #13
0
        public void should_join_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = slackConnector.Connect(config.Slack.ApiToken).Result;

            // when
            SlackChatHub result = connection.JoinDirectMessageChannel(config.Slack.TestUserId).Result;

            // then
            Assert.That(result, Is.Not.Null);
        }
コード例 #14
0
        public void should_send_typing_indicator()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection = slackConnector.Connect(config.Slack.ApiToken).Result;
            SlackChatHub channel = connection.ConnectedChannels().First(x => x.Name.Equals("#general", StringComparison.InvariantCultureIgnoreCase));

            // when
            connection.IndicateTyping(channel).Wait();

            // then
        }
コード例 #15
0
        public void should_connect_and_stuff()
        {
            // given
            var config = new ConfigReader().GetConfig();
            var slackConnector = new SlackConnector();

            // when
            var connection = slackConnector.Connect(config.Slack.ApiToken).Result;
            connection.OnDisconnect += SlackConnector_OnDisconnect;
            connection.OnMessageReceived += SlackConnectorOnOnMessageReceived;

            // then
            Assert.That(connection.IsConnected, Is.True);
        }
コード例 #16
0
        public void should_connect_and_stuff()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();

            // when
            _slackConnection = slackConnector.Connect(config.Slack.ApiToken).Result;
            _slackConnection.OnDisconnect      += SlackConnector_OnDisconnect;
            _slackConnection.OnMessageReceived += SlackConnectorOnMessageReceived;

            // then
            Assert.That(_slackConnection.IsConnected, Is.True);
        }
コード例 #17
0
        public async Task should_send_typing_indicator()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = await slackConnector.Connect(config.Slack.ApiToken);

            SlackChatHub channel = connection.ConnectedChannel(config.Slack.TestChannel);

            // when
            await connection.IndicateTyping(channel);

            // then
        }
コード例 #18
0
        public ConnectedStatusTests()
        {
            _handshakeClient        = new Mock <IHandshakeClient>();
            _webSocketClient        = new Mock <IWebSocketClient>();
            _connectionFactory      = new Mock <IConnectionFactory>();
            _slackConnectionFactory = new Mock <ISlackConnectionFactory>();
            _slackConnector         = new SlackConnector(_connectionFactory.Object, _slackConnectionFactory.Object);

            _connectionFactory
            .Setup(x => x.CreateHandshakeClient())
            .Returns(_handshakeClient.Object);

            _connectionFactory
            .Setup(x => x.CreateWebSocketClient(_webSocketUrl, null))
            .ReturnsAsync(_webSocketClient.Object);
        }
コード例 #19
0
        public HubsTests()
        {
            _handshakeClient = new Mock <IHandshakeClient>();
            var webSocketClient   = new Mock <IWebSocketClient>();
            var connectionFactory = new Mock <IConnectionFactory>();

            _slackConnectionFactory = new Mock <ISlackConnectionFactory>();
            _slackConnector         = new SlackConnector(connectionFactory.Object, _slackConnectionFactory.Object);

            connectionFactory
            .Setup(x => x.CreateHandshakeClient())
            .Returns(_handshakeClient.Object);

            connectionFactory
            .Setup(x => x.CreateWebSocketClient(_webSocketUrl))
            .ReturnsAsync(webSocketClient.Object);
        }
コード例 #20
0
ファイル: SayTests.cs プロジェクト: Daniel-42/SlackConnector
        public void should_say_something_on_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();
            
            var slackConnector = new SlackConnector();
            var connection = slackConnector.Connect(config.Slack.ApiToken).Result;
            var message = new BotMessage
            {
                Text = "Test text for INT test",
                ChatHub = connection.ConnectedChannels().First(x => x.Name.Equals("#general", StringComparison.InvariantCultureIgnoreCase))
            };
            
            // when
            connection.Say(message).Wait();

            // then
        }
コード例 #21
0
        public void should_say_something_on_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = slackConnector.Connect(config.Slack.ApiToken).Result;
            var message        = new BotMessage
            {
                Text    = "Test text for INT test",
                ChatHub = connection.ConnectedChannel(config.Slack.TestChannel)
            };

            // when
            connection.Say(message).Wait();

            // then
        }
コード例 #22
0
ファイル: SayTests.cs プロジェクト: galister/SlackConnector
        public void should_say_something_on_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = slackConnector.Connect(config.Slack.ApiToken).Result;
            var message        = new BotMessage
            {
                Text    = "Test text for INT test",
                ChatHub = connection.ConnectedChannels().First(x => x.Name.Equals("#general", StringComparison.InvariantCultureIgnoreCase))
            };

            // when
            connection.Say(message).Wait();

            // then
        }
コード例 #23
0
        public async Task should_say_something_on_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = await slackConnector.Connect(config.Slack.ApiToken);

            var message = new BotMessage
            {
                Text    = "Test text for INT test",
                ChatHub = connection.ConnectedChannel(config.Slack.TestChannel)
            };

            // when
            var response = await connection.Say(message);

            // then
            Assert.That(string.CompareOrdinal(response.Message.Text, message.Text) == 0, Is.True);
        }
コード例 #24
0
ファイル: SayTests.cs プロジェクト: Lachee/SlackConnector
        public void should_say_something_complex_on_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            var slackConnector = new SlackConnector();
            var connection     = slackConnector.Connect(config.Slack.ApiToken).Result;
            var message        = new BotMessage
            {
                Text    = "Test Text for COMPLEX messages",
                Name    = "Jeffery Bot",
                Icon    = "http://lorempixel.com/128/128/cats/",
                ChatHub = connection.ConnectedChannels().First(x => x.Name.Equals("#general", StringComparison.InvariantCultureIgnoreCase))
            };

            // when
            connection.Say(message).Wait();

            // then
        }
コード例 #25
0
        public void should_join_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();
            if (string.IsNullOrEmpty(config.Slack.TestUserId))
            {
                Assert.Inconclusive("TestUserId is missing from config");
            }

            var slackConnector = new SlackConnector();
            var connection = slackConnector.Connect(config.Slack.ApiToken).Result;

            // when
            SlackChatHub result = connection.JoinDirectMessageChannel(config.Slack.TestUserId).Result;

            // then
            Assert.That(result, Is.Not.Null);

            List<SlackChatHub> dms = connection.ConnectedDMs().ToList();
            Assert.That(dms.Count, Is.GreaterThan(1));
        }
コード例 #26
0
        public void should_join_channel()
        {
            // given
            var config = new ConfigReader().GetConfig();

            if (string.IsNullOrEmpty(config.Slack.TestUserId))
            {
                Assert.Inconclusive("TestUserId is missing from config");
            }

            var slackConnector = new SlackConnector();
            var connection     = slackConnector.Connect(config.Slack.ApiToken).Result;

            // when
            SlackChatHub result = connection.JoinDirectMessageChannel(config.Slack.TestUserId).Result;

            // then
            Assert.That(result, Is.Not.Null);

            List <SlackChatHub> dms = connection.ConnectedDMs().ToList();

            Assert.That(dms.Count, Is.GreaterThan(1));
        }
コード例 #27
0
 static void OnClose(object sender, EventArgs e)
 {
     ConsoleMessenger.PrintWarning("Shutting Down");
     SlackConnector.GetSocket().CloseAsync();
 }
コード例 #28
0
 public static void ClassInit(TestContext testContext)
 {
     EnviromentLoader.Load();
     SlackConnector.Connect();
 }
コード例 #29
0
 public static void ClassClean()
 {
     SlackConnector.GetSocket().Close();
 }
コード例 #30
0
 public void GetSocketTest()
 {
     Assert.IsNotNull(SlackConnector.GetSocket());
 }