Esempio n. 1
0
        public async Task WhenCallingAuthTestThenServerReceive(SlackLibrary.Connections.Models.AuthTest wantedResponse)
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                var mockedResponse = new SlackLibrary.Connections.Responses.AuthTestResponse()
                {
                    Ok     = true,
                    TeamId = wantedResponse.TeamId,
                    Team   = wantedResponse.Team,
                    Url    = wantedResponse.Url,
                    User   = wantedResponse.User,
                    UserId = wantedResponse.UserId
                };
                server.MockDefaultAuthTest(mockedResponse);

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlAuthClient(new ResponseVerifier());

                var response = await client.Test("SLACK_KEY");

                response.ShouldDeepEqual(wantedResponse);
            }
        }
Esempio n. 2
0
        public async Task WhenCallingOAuthAccessThenServerReceive(SlackLibrary.Connections.Responses.OAuthAccessResponse wantedResponse)
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockDefaultOAuthAccess(wantedResponse);

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlAuthClient(new ResponseVerifier());

                var response = await client.OAuthAccess("CLIENT_ID", "CLIENT_SECRET", "CODE", "REDIRECT_URI", "STATE");

                response.ShouldDeepEqual(wantedResponse);
            }
        }
Esempio n. 3
0
        public async Task WhenAskingTeamInfoThenServerReceive(SlackLibrary.Connections.Models.Team wantedResponse)
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockDefaultTeamInfo(wantedResponse);

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlTeamClient(new ResponseVerifier());

                var response = await client.GetTeamInfo("SLACK_KEY");

                response.ShouldDeepEqual(wantedResponse);
            }
        }
Esempio n. 4
0
        public async Task WhenAskingForUserInfoThenServerReceive(SlackLibrary.Connections.Models.User wantedResponse)
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockUserInfo(wantedResponse);

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlUserClient(new ResponseVerifier());

                var response = await client.Info("SLACK_KEY", wantedResponse.Id);

                response.WithDeepEqual(wantedResponse)
                .IgnoreSourceProperty(x => x.Updated)
                .Assert();
            }
        }
Esempio n. 5
0
        public async Task WhenSendingMessageThenServerReceive()
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockDefaultSendMessage();

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlChatClient(new ResponseVerifier());

                var channel  = "fake-channel";
                var text     = "This is a message for a test";
                var response = await client.PostMessage("fake-key", channel, text);

                Assert.Equal(channel, response.Channel);
                Assert.Equal(text, response.Message.Text);
            }
        }
Esempio n. 6
0
        public async Task WhenDeletingMessageThenServerReceive()
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockDefaultDeleteMessage();

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlChatClient(new ResponseVerifier());

                var channel = "fake-channel";
                var ts      = "1111.222223";
                await client.Delete("fake-key", channel, ts);

                var logEntry = server.HttpServer.LogEntries.Filter(FlurlChatClient.DELETE_MESSAGE_PATH, _ => true);

                Assert.NotNull(logEntry);
            }
        }
Esempio n. 7
0
        public async Task WhenAskingConversationListThenServerReceive(SlackLibrary.Connections.Models.ConversationChannel[] channels)
        {
            var port = GetRandomPort;

            using (var server = new SlackServer(port))
            {
                server.MockConversationList(conversations: channels);

                ClientConstants.SlackApiHost = $"http://localhost:{port}";

                var client = new FlurlConversationClient(new ResponseVerifier());

                var response = await client.List("SLACK_KEY");

                var responseChannels = response.Items.ToList();
                Assert.Equal(responseChannels.Count, channels.Length);
                for (int i = 0; i < channels.Length; i++)
                {
                    Assert.Equal(responseChannels[i].Id, channels[i].Id);
                }
            }
        }