Esempio n. 1
0
        public void SendMessage_With_Default_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload();

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 2
0
        public void SendMessage_With_Attachments_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload();

            payload.Attachments.Add(new Attachment("Fallback Attachment, Test from SlackClient.ServiceLibrary.IntegrationTests")
            {
                Color  = "danger",
                Text   = "Optional Text from test",
                Fields = new List <Field>()
                {
                    new Field("ShortField1")
                    {
                        Short = true,
                        Value = "Value for Short Field 1"
                    },
                    new Field("ShortField2")
                    {
                        Short = true,
                        Value = "Value for Short Field 2"
                    },
                    new Field("LongField1")
                    {
                        Short = false,
                        Value = "Value for *Long Long Long Long* Long Field 1"
                    },
                    new Field("LongField2WithFormat")
                    {
                        Short = false,
                        Value = "```Value for Long Long Long Long Long Field 2```"
                    }
                }
            });

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 3
0
        public void SendMessage_With_Link_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = @"https://slack.com/: <https://slack.com/|Click aquí>",
                Channel  = "#devtest"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 4
0
        public void SendMessage_With_Simple_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = "MessageSample From Integrarion Tests .Net",
                Channel  = "#devtest"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 5
0
        public void SendMessage_With_EmojiUrl_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username  = "******",
                Text      = @"Text with custom Emoji Icon",
                Channel   = "#devtest",
                IconEmoji = @":ghost:"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 6
0
        public void SendMessage_With_IconUrl_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = @"Text with custom Icon Url",
                Channel  = "#devtest",
                IconUrl  = @"https://slack.com/img/icons/app-57.png"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
Esempio n. 7
0
        public ResponseSlackClientEnum SendMessage(Payload payload)
        {
            ResponseSlackClientEnum result = ResponseSlackClientEnum.ko;

            string payloadJson = JsonConvert.SerializeObject(payload,
                                                             Formatting.None,
                                                             new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });

            using (WebClient client = new WebClient())
            {
                NameValueCollection data = new NameValueCollection();
                data["payload"] = payloadJson;

                try{
                    var response = client.UploadValues(_uri, "POST", data);

                    //The response text is usually "ok"
                    string responseText = _encoding.GetString(response);
                    result = (ResponseSlackClientEnum)Enum.Parse(typeof(ResponseSlackClientEnum), responseText, true);
                }
                catch (System.Net.WebException ex)
                {
                    ///TODO: Add your favorite log system
                    throw new IncomingWebHookDisabledException("The Slack Incoming WebHooks may be disabled or Slack Url is incorrect.Check it and try again", ex);
                }
                catch
                {
                    ///TODO: Add your favorite log system
                    throw;
                }
            }

            return(result);
        }