Beispiel #1
0
        public async Task <string> GetGraphQLSpecifiedFieldsAsync()
        {
            _ = this.token ?? throw new InvalidOperationException(nameof(this.token));

            var httpClient = HttpClientTest.GetHttpClient(address);

            httpClient.DefaultRequestHeaders.Add("Token", this.token);
            var httpResponseMessage = await httpClient.PostAsJsonAsync("api/v1/graphql",
                                                                       new
            {
                Query = @"
query {
    Database(name:""GameData_KOR_Dev"") {
        ID
        Name
        IsEntered
        Tags
        Tables {
            Name
            Tags
            Columns {
                Name
                DefaultValue
                Tags
            }
        }
    }
}"
            });

            return(await httpResponseMessage.Content.ReadAsStringAsync());
        }
        public async Task ShouldBeReturned_AllTags_InTheDatabase()
        {
            await AuthenticateAsync();

            var response = await HttpClientTest
                           .GetAsync(_requestUri);

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <PagedResponse <TagResponse> >())
            .Data.Should()
            .NotBeNullOrEmpty().And
            .SatisfyRespectively(
                tag1 =>
            {
                tag1.Id.Should().Be(Guid.Parse("5d5e9a28-7c3e-4c2a-8098-b866eab33e61"));
                tag1.Name.Should().Be("Tag_1");
            },
                tag2 =>
            {
                tag2.Id.Should().Be(Guid.Parse("d94e6e00-96d0-4fc7-b621-c7746705b471"));
                tag2.Name.Should().Be("Tag_2");
            });
        }
        public async Task ShouldBeReturned_AllPosts_InTheDatabase()
        {
            await AuthenticateAsync();

            var response = await HttpClientTest
                           .GetAsync(_requestUri);

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <PagedResponse <PostResponse> >())
            .Data.Should()
            .NotBeNullOrEmpty().And
            .SatisfyRespectively(
                post1 =>
            {
                post1.Id.Should().Be(Guid.Parse("b65afc54-d766-4377-8c89-22662582174e"));
                post1.Title.Should().Be("Post 1");
                post1.Content.Should().Be("First post content");
                post1.Attachments.Should().Be("post1img1.jpg,post1img2.jpg");
                post1.AuthorId.Should().Be(Guid.Parse("d4182477-0823-4908-be1d-af808e594306"));
            },
                post2 =>
            {
                post2.Id.Should().Be(Guid.Parse("a06ba60c-c999-4de3-aa23-4f0c13bd71ad"));
                post2.Title.Should().Be("Post 2");
                post2.Content.Should().Be("Second post content");
                post2.Attachments.Should().Be("post2img1.jpg,post2img2.jpg");
                post2.AuthorId.Should().Be(Guid.Parse("9ab3d110-71e1-418f-86eb-519146e7d702"));
            });
        }
Beispiel #4
0
        public async Task ShouldBeReturned_PostResponse_IfAuthorIdExistsInDatabase()
        {
            var validId = Guid.Parse("b65afc54-d766-4377-8c89-22662582174e");
            var expectedPostResponse =
                new Response <PostResponse>(
                    new PostResponse
            {
                Id          = validId,
                Title       = "Post 1",
                Content     = "First post content",
                Attachments = "post1img1.jpg,post1img2.jpg",
                AuthorId    = Guid.Parse("d4182477-0823-4908-be1d-af808e594306")
            });

            await AuthenticateAsync();

            var response = await HttpClientTest.GetAsync(
                _requestUri.Replace("{postId}",
                                    validId.ToString()));

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <Response <PostResponse> >())
            .Data.Should()
            .NotBeNull().And
            .BeEquivalentTo(expectedPostResponse,
                            x => x.ExcludingMissingMembers());
        }
Beispiel #5
0
        public async Task ShouldBeReturned_AuthorResponse_IfAuthorIdExistsInDatabase()
        {
            var validId = Guid.Parse("9ab3d110-71e1-418f-86eb-519146e7d702");
            var expectedAuthorResponse =
                new Response <AuthorResponse>(
                    new AuthorResponse
            {
                Id        = validId,
                FirstName = "Maria",
                Email     = "*****@*****.**"
            });

            await AuthenticateAsync();

            var response = await HttpClientTest.GetAsync(
                _requestUri.Replace("{authorId}",
                                    validId.ToString()));

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <Response <AuthorResponse> >())
            .Data.Should()
            .NotBeNull().And
            .BeEquivalentTo(expectedAuthorResponse,
                            x => x.ExcludingMissingMembers());
        }
        public async Task ShouldBeReturned_AllAuthors_InTheDatabase()
        {
            await AuthenticateAsync();

            var response = await HttpClientTest
                           .GetAsync(_requestUri);

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <PagedResponse <AuthorResponse> >())
            .Data.Should()
            .NotBeNullOrEmpty().And
            .SatisfyRespectively(
                author1 =>
            {
                author1.Id.Should().Be(Guid.Parse("d4182477-0823-4908-be1d-af808e594306"));
                author1.FirstName.Should().Be("João");
                author1.Email.Should().Be("*****@*****.**");
            },
                author2 =>
            {
                author2.Id.Should().Be(Guid.Parse("9ab3d110-71e1-418f-86eb-519146e7d702"));
                author2.FirstName.Should().Be("Maria");
                author2.Email.Should().Be("*****@*****.**");
            });
        }
        public async Task ShouldBeReturned_TagResponse_IfTagIdExistsInDatabase()
        {
            var validId             = Guid.Parse("5d5e9a28-7c3e-4c2a-8098-b866eab33e61");
            var expectedTagResponse =
                new Response <TagResponse>(
                    new TagResponse
            {
                Id   = validId,
                Name = "Tag_1"
            });

            await AuthenticateAsync();

            var response = await HttpClientTest.GetAsync(
                _requestUri.Replace("{tagId}",
                                    validId.ToString()));

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <Response <TagResponse> >())
            .Data.Should()
            .NotBeNull().And
            .BeEquivalentTo(expectedTagResponse,
                            x => x.ExcludingMissingMembers());
        }
Beispiel #8
0
        public async Task <string> GetHttpApiAsync()
        {
            _ = this.token ?? throw new InvalidOperationException(nameof(this.token));

            var httpClient          = HttpClientTest.GetHttpClient(address, null, this.token);
            var httpResponseMessage = await httpClient.GetAsync($"api/v1/commands/databases/{HttpBenchmark.DatabaseName}/tables/*/info");

            return(await httpResponseMessage.Content.ReadAsStringAsync());
        }
Beispiel #9
0
        public async Task LogoutAsync()
        {
            _ = this.token ?? throw new InvalidOperationException(nameof(this.token));

            var httpClient          = HttpClientTest.GetHttpClient(address, null, this.token);
            var httpResponseMessage = await httpClient.PostAsJsonAsync("api/v1/commands/logout", new { UserID = userId, Password = password });

            await JsonExtensions.ReadAsDynamicAsync(httpResponseMessage.Content);
        }
Beispiel #10
0
        public async Task <string> LoginAsync()
        {
            var httpClient          = HttpClientTest.GetHttpClient(address);
            var httpResponseMessage = await httpClient.PostAsJsonAsync($"api/v1/commands/login/databases/{HttpBenchmark.DatabaseName}/load-and-enter", new { UserID = userId, Password = password });

            var response = await JsonExtensions.ReadAsDynamicAsync(httpResponseMessage.Content);

            this.token = response.Token.ToString();
            return(response.Token.ToString());
        }
Beispiel #11
0
        public async Task ShouldBeReturned_NotFoundResponse_IfTagIdNotExists()
        {
            await AuthenticateAsync();

            var randomId = Guid.NewGuid().ToString();

            var response = await HttpClientTest.DeleteAsync(
                _requestUri.Replace("{tagId}", randomId));

            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        public async Task ShouldBeReturned_SuccessAuthResponse_IfCredentialsIsValid()
        {
            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _authorLoginRequest);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await response.Content.ReadAsAsync <AuthSuccessResponse>())
            .Token.Should().NotBeNullOrEmpty();

            _output.WriteLine($"Valor entrada: {JObject.FromObject(_authorLoginRequest)} | Resultado teste: {response.StatusCode}");
        }
Beispiel #13
0
        public async Task ShouldBeReturned_NotFoundResponse_IfPostIdNotExistsInDatabase()
        {
            var randomId = Guid.NewGuid().ToString();

            await AuthenticateAsync();

            var response = await HttpClientTest.GetAsync(
                _requestUri.Replace("{postId}", randomId));

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        public async Task ShouldBeReturned_NotFoundResponse_IfTagIdNotExists()
        {
            await AuthenticateAsync();

            var randomId = Guid.NewGuid().ToString();

            var response = await HttpClientTest.PutAsJsonAsync(
                _requestUri.Replace("{tagId}", randomId), _updateTagRequest);

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        public async Task ShouldBeReturned_SuccessResetPasswordResponse()
        {
            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _authorResetPasswordRequest);

            var content = await response.Content
                          .ReadAsAsync <ResetPasswordSuccessResponse>();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            content.Reseted.Should().BeTrue();
            content.SuccessMessage.Should()
            .Be("Senha redefinida com sucesso");
        }
Beispiel #16
0
        public async Task Login_AuthenticationController_RespostaComSucessoEUsuarioRecebeTokenDeAcesso()
        {
            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _loginRequest);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var authResponse = await response.Content.ReadAsAsync <AutenticacaoComSucessoResponse>();

            authResponse.Mensagem.Should().Be(Dicionario.MS001);
            authResponse.Token.Should().NotBeNullOrEmpty();
            authResponse.Usuario.Email.Should().Be(_loginRequest.Email);

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_loginRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #17
0
        public async Task ShouldBeReturned_SuccessResponse_AndDeleteTagInTheDatabase()
        {
            await AuthenticateAsync();

            var tagId = "5d5e9a28-7c3e-4c2a-8098-b866eab33e61";

            var response = await HttpClientTest.DeleteAsync(
                _requestUri.Replace("{tagId}", tagId));

            response.StatusCode.Should().Be(HttpStatusCode.NoContent);

            var deletedTagResponse = await HttpClientTest.GetAsync(
                ApiRoutes.Tags.Get.Replace("{tagId}", tagId));

            deletedTagResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        public async Task ShouldBeReturned_SuccessResponse_AndDeleteAuthorInTheDatabase()
        {
            await AuthenticateAsync();

            var authorId = "d4182477-0823-4908-be1d-af808e594306";

            var response = await HttpClientTest.DeleteAsync(
                _requestUri.Replace("{authorId}", authorId));

            response.StatusCode.Should().Be(HttpStatusCode.NoContent);

            var deletedAuthorResponse = await HttpClientTest.GetAsync(
                ApiRoutes.Authors.Get.Replace("{authorId}", authorId));

            deletedAuthorResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
        public async Task ShouldBeReturned_FailerAuthResponse_IfPasswordIsInvalid()
        {
            _authorLoginRequest.Password = _faker.Internet.Password();

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _authorLoginRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            (await response.Content.ReadAsAsync <AuthFailedResponse>())
            .Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { "Email/password combination is invalid" });

            _output.WriteLine($"Valor entrada: {_authorLoginRequest.Password} | Resultado teste: {response.StatusCode}");
        }
        public async Task ShouldBeReturned_FailerAuthResponse_IfEmailIsInvalid()
        {
            _authorLoginRequest.Email = _faker.Person.Email;

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _authorLoginRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            (await response.Content.ReadAsAsync <AuthFailedResponse>())
            .Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { "Author does not exist" });

            _output.WriteLine($"Valor entrada: {_authorLoginRequest.Email} | Resultado teste: {response.StatusCode}");
        }
        public async Task ShouldBeReturned_FailedResponse_IfAlreadyExistsEqualsEmail(string alreadyRegisteredEmail)
        {
            _authorRegistrationhorRequest.Email = alreadyRegisteredEmail;

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _authorRegistrationhorRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            (await response.Content.ReadAsAsync <AuthFailedResponse>())
            .Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { "Author with this email already exists" });

            _output.WriteLine($"Valor entrada: {alreadyRegisteredEmail} | Resultado teste: {response.StatusCode}");
        }
Beispiel #22
0
        public async Task ShouldBeReturned_SuccessResponse_AndDeletePostInTheDatabase()
        {
            await AuthenticateAsync();

            var postId = "a06ba60c-c999-4de3-aa23-4f0c13bd71ad";

            var response = await HttpClientTest.DeleteAsync(
                _requestUri.Replace("{postId}", postId));

            response.StatusCode.Should().Be(HttpStatusCode.NoContent);

            var deletedPostResponse = await HttpClientTest.GetAsync(
                ApiRoutes.Posts.Get.Replace("{postId}", postId));

            deletedPostResponse.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
Beispiel #23
0
        public async Task ResetarSenha_AutenticacaoController_RespostaComFalhaSeEmailNaoExiste()
        {
            _resetarSenhaRequest.Email = Faker.Person.Email;

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _resetarSenhaRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Mensagem.Should()
            .Be(Dicionario.ME001);

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_resetarSenhaRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #24
0
        public async Task ResetarSenha_AutenticacaoController_RespostaDeSucessoESenhaDoUsuarioResetada()
        {
            _resetarSenhaRequest.Email = "*****@*****.**";

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _resetarSenhaRequest);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComSucessoResponse>();

            authResponse.Mensagem.Should()
            .Be(Dicionario.MS002);

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_resetarSenhaRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #25
0
        public async Task ResetarSenha_AutenticacaoController_RespostaComFalhaSeSenhaEhNulaOuVazia(string senhaInvalida)
        {
            _resetarSenhaRequest.Senha = senhaInvalida;

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _resetarSenhaRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { Dicionario.MV013 });

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_resetarSenhaRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #26
0
        public async Task ResetarSenha_AutenticacaoController_RespostaComFalhaSeConfirmacaoDeSenhaNaoForIgualASenha()
        {
            _resetarSenhaRequest.ConfirmacaoSenha = Faker.Internet.Password();

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _resetarSenhaRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { Dicionario.MV015 });

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_resetarSenhaRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
        public async Task ShouldBeReturned_SuccessResponse_AndRegisterNewTag()
        {
            await AuthenticateAsync();

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri,
                                            _createTagRequest);

            _output.WriteLine($"Response: {await response.Content.ReadAsStringAsync()}");

            response.StatusCode.Should().Be(HttpStatusCode.Created);
            (await response.Content.ReadAsAsync <Response <TagResponse> >())
            .Data.Should().BeEquivalentTo(new Response <TagResponse>(
                                              new TagResponse
            {
                Name = _createTagRequest.Name
            }), x => x.ExcludingMissingMembers());
        }
Beispiel #28
0
        public async Task RegistrarUsuario_AutenticacaoController_RespostaComFalhaSeSobrenomePossuirMenosDe4Caracteres()
        {
            _registrarUsuarioRequest.Sobrenome = Faker.Random.String2(1, 3);

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _registrarUsuarioRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { Dicionario.MV008 });

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_registrarUsuarioRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #29
0
        public async Task RegistrarUsuario_AutenticacaoController_RespostaComFalhaSeNomeEhNuloOuVazio(string nomeInvalido)
        {
            _registrarUsuarioRequest.Nome = nomeInvalido;

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _registrarUsuarioRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { Dicionario.MV005 });

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_registrarUsuarioRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }
Beispiel #30
0
        public async Task RegistrarUsuario_AutenticacaoController_RespostaComFalhaSeNomeTiverCaracteresEspeciaisOuNumeros()
        {
            _registrarUsuarioRequest.Nome = Faker.Random.String2(5, 10, chars: "abc123#@$");

            var response = await HttpClientTest
                           .PostAsJsonAsync(_requestUri, _registrarUsuarioRequest);

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            var authResponse = await response.Content
                               .ReadAsAsync <AutenticacaoComFalhaResponse>();

            authResponse.Errors.Should()
            .HaveCount(1).And
            .BeEquivalentTo(new[] { Dicionario.MV009 });

            Output.WriteLine($@"Valor entrada: {JsonSerializer.Serialize(_registrarUsuarioRequest)} 
                              | Resultado teste: {response.StatusCode}");
        }