Exemplo n.º 1
0
        public async Task UpdateReader_LibrarianUser_OkStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);
            var reader         = await CreateReader(client);

            var newName = "FirstName2";

            // Act
            var content = new UpdateReaderCommand()
            {
                UserId    = reader.Id,
                FirstName = newName,
                LastName  = "LastName2",
                Email     = "*****@*****.**",
                Password  = "******"
            };
            var response = await client.PutAsJsonAsync("api/readers/", content);

            var responseUser = await response.Content.ReadFromJsonAsync <UserDTO>();

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            responseUser.FirstName.Should().Be(newName);
        }
Exemplo n.º 2
0
        public async Task UpdateBook_LibrarianUser_OkStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);
            var book           = await CreateBook(client);

            var newTitle = "NewTitle";

            // Act
            var content = new UpdateBookCommand()
            {
                BookId = book.Id,
                Title  = newTitle,
                Author = new AuthorDTO()
                {
                    FirstName = book.Author.FirstName,
                    LastName  = book.Author.LastName
                },
                Description   = book.Description,
                YearPublished = book.YearPublished
            };
            var response = await client.PutAsJsonAsync("api/books/", content);

            var responseBook = await response.Content.ReadFromJsonAsync <BookDTO>();

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            responseBook.Title.Should().Be(newTitle);
        }
Exemplo n.º 3
0
        public async Task Get_EndPointsReturnsFailureForUnauthorizedUser(string url)
        {
            var provider = TestClaimsProvider.WithUserClaims();
            var client   = _factory.CreateClientWithTestAuth(provider);

            var response = await client.GetAsync(url);

            response.EnsureSuccessStatusCode();
            Assert.Equal("text/html; charset=utf-8", response.Content.Headers.ContentType.ToString());
        }
Exemplo n.º 4
0
        public TestBase(TestFixture testFixture)
        {
            UnauthorizedClient = testFixture.CreateClient(TestClaimsProvider.Unauthorized());
            AdminClient        = testFixture.CreateClient(TestClaimsProvider.WithAdminClaims());
            MemberClient       = testFixture.CreateClient(TestClaimsProvider.WithMemberClaims());

            var configuration = InitConfiguration();

            ControllersUrls = configuration.GetSection("ControllersUrls");
        }
Exemplo n.º 5
0
        public async Task GetReaders_LibrarianUser_OkStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);

            // Act
            var response = await client.GetAsync("api/readers/");

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 6
0
        public async Task GetReaders_ReaderUser_Forbidden(string url)
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithReaderClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);

            // Act
            var response = await client.GetAsync(url);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Forbidden);
        }
Exemplo n.º 7
0
        public async Task CreateReader_LibrarianUser_OkStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);

            // Act
            var response = await CreateReader(client);

            // Assert
            response.Should().NotBeNull();
            response.Id.Should().BeGreaterThan(0);
        }
Exemplo n.º 8
0
        public async Task DeleteReader_LibrarianUser_NoContentStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);
            var reader         = await CreateReader(client);

            // Act
            var response = await client.DeleteAsync($"api/readers/{reader.Id}");

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.NoContent);
        }
Exemplo n.º 9
0
        public async Task GetBook_LibrarianUser_OkStatusCode()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);
            var book           = await CreateBook(client);

            // Act
            var response = await client.GetAsync($"api/books/{book.Id}");

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 10
0
        public HttpClient CreateClient(TestClaimsProvider claimsProvider)
        {
            var builder = WebHost.CreateDefaultBuilder()
                          .ConfigureServices(services =>
            {
                services.AddSingleton <TestClaimsProvider>(_ => claimsProvider);
            })
                          .UseStartup <TestStartup>()
                          .UseContentRoot(_applicationPath)
                          .UseEnvironment("Development");

            _server = new TestServer(builder);
            return(_server.CreateClient());
        }
Exemplo n.º 11
0
        public async Task ReturnBook_LibrarianUser_BookReturned()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithLibrarianClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);
            var book           = await CreateBook(client);

            var responseBorrow = await client.PostAsync($"api/books/{book.Id}/borrow", null);

            // Act
            var responseReturn = await client.PutAsync($"api/books/{book.Id}/return", null);

            // Assert
            responseReturn.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 12
0
        public async Task CreateReader_ReaderUser_Forbidden()
        {
            // Arrange
            var claimsProvider = TestClaimsProvider.WithReaderClaims();
            var client         = Factory.CreateClientWithTestAuth(claimsProvider);

            // Act
            var content = new CreateReaderCommand()
            {
                FirstName = "FirstName",
                LastName  = "LastName",
                Email     = "*****@*****.**",
                Password  = "******"
            };
            var response = await client.PostAsJsonAsync("api/readers/", content);

            // Assert
            response.StatusCode.Should().Be(HttpStatusCode.Forbidden);
        }
Exemplo n.º 13
0
 public TestAuthHandler(IOptionsMonitor <AuthenticationSchemeOptions> options,
                        ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, TestClaimsProvider claimsProvider)
     : base(options, logger, encoder, clock)
 {
     _claims = claimsProvider.Claims;
 }