public async Task <ActionResult <AuthenticationToken> > Authenticate([FromBody] GetAuthenticationTokenQuery query)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await Mediator.Send(query)));
        }
        public async Task GivenMessageRequest_WhenPost_ThenAPostReturnsThePostedMessages()
        {
            var authQuery = new GetAuthenticationTokenQuery
            {
                UserName = "******",
                Password = "******"
            };

            AuthenticationToken authenticationToken;

            using (var postAuthResponse = await _client.PostAsJsonAsync($"/api/Auth", authQuery))
            {
                Assert.True(postAuthResponse.IsSuccessStatusCode);
                authenticationToken = await postAuthResponse.Content.ReadAsAsync <AuthenticationToken>();

                Assert.NotEmpty(authenticationToken.Token);
            }

            _client.DefaultRequestHeaders.Add("Authorization", $"Bearer {authenticationToken.Token}");

            var command = new CreateMessagesCommand
            {
                Messages = new List <MessagesViewModel>
                {
                    new MessagesViewModel
                    {
                        Id         = "1",
                        ReceivedAt = DateTime.UtcNow,
                        Title      = "Title 1.1",
                        Text       = "Text 1.1"
                    },
                    new MessagesViewModel
                    {
                        Id         = "1",
                        ReceivedAt = DateTime.UtcNow,
                        Title      = "Title 1.2",
                        Text       = "Text 1.2"
                    }
                }
            };

            List <MessagesViewModel> messages;

            using (var postMessagesResponse = await _client.PostAsJsonAsync($"/api/Messages", command))
            {
                Assert.True(postMessagesResponse.IsSuccessStatusCode);
                messages = await postMessagesResponse.Content.ReadAsAsync <List <MessagesViewModel> >();

                Assert.True(messages.Count == command.Messages.Count);
            }
        }
Пример #3
0
        public async Task GivenLoginRequest_WhenAuth_ThenAPostReturnsErrorWhenPasswordIsWrong()
        {
            var query = new GetAuthenticationTokenQuery
            {
                UserName = "******",
                Password = "******"
            };

            using (var postAuthResponse = await _client.PostAsJsonAsync($"/api/Auth", query))
            {
                Assert.False(postAuthResponse.IsSuccessStatusCode);
                Assert.Equal(HttpStatusCode.InternalServerError, postAuthResponse.StatusCode);
            }
        }
Пример #4
0
        public async Task GivenLoginRequest_WhenAuth_ThenAPostReturnsTheJwtToken()
        {
            var query = new GetAuthenticationTokenQuery
            {
                UserName = "******",
                Password = "******"
            };

            AuthenticationToken authenticationToken;

            using (var postAuthResponse = await _client.PostAsJsonAsync($"/api/Auth", query))
            {
                Assert.True(postAuthResponse.IsSuccessStatusCode);
                authenticationToken = await postAuthResponse.Content.ReadAsAsync <AuthenticationToken>();

                Assert.NotEmpty(authenticationToken.Token);
            }
        }
        public async Task GivenMessageRequest_WhenGet_ThenAGetReturnsSuccessIfAtLeastOneMessageExists()
        {
            var authQuery = new GetAuthenticationTokenQuery
            {
                UserName = "******",
                Password = "******"
            };

            AuthenticationToken authenticationToken;

            using (var postAuthResponse = await _client.PostAsJsonAsync($"/api/Auth", authQuery))
            {
                Assert.True(postAuthResponse.IsSuccessStatusCode);
                authenticationToken = await postAuthResponse.Content.ReadAsAsync <AuthenticationToken>();

                Assert.NotEmpty(authenticationToken.Token);
            }

            _client.DefaultRequestHeaders.Add("Authorization", $"Bearer {authenticationToken.Token}");

            var query = new GetMessagesQuery
            {
                MaxRecords = 3,
                View       = "Grid view"
            };

            List <MessagesViewModel> messages;

            using (var getMessagesResponse = await _client.GetAsync($"/api/Messages?maxRecords={query.MaxRecords}&view={query.View}"))
            {
                Assert.True(getMessagesResponse.IsSuccessStatusCode);
                messages = await getMessagesResponse.Content.ReadAsAsync <List <MessagesViewModel> >();

                Assert.True(messages.Any());
            }
        }