Example #1
0
        public async void ErrorResponseShouldThrow()
        {
            // Arrange
            const string otherComponentBaseUrl = "https://api.othercomponent.com/";
            var          serviceCollection     = new ServiceCollection();

            serviceCollection.Configure <AppSettings>(settings =>
            {
                settings.OtherComponentBaseUrl = otherComponentBaseUrl;
            });

            var httpMessageHandler = new TestHttpMessageHandler();

            httpMessageHandler.PushGetResponse(new Uri(new Uri(otherComponentBaseUrl), "/secret"), HttpStatusCode.BadRequest, "You are saying it wrong!");
            var fixture = new AuthorizedTestFixture <DemoStartup>(httpMessageHandler: httpMessageHandler, serviceCollection: serviceCollection);

            // Act
            var request = new HttpRequestMessage(HttpMethod.Get, ApiEndpointGetFromOtherComponent);

            request.Headers.Add("Authorization", "Bearer " + fixture.TokenService.GetToken());

            // Assert
            var exception = await Assert.ThrowsAsync <Exception>(() => fixture.HttpClient.SendAsync(request));

            Assert.Equal("Could not get secret from other!", exception.Message);
        }
Example #2
0
        public async void AddedGetResponseShouldBeReturned()
        {
            // Arrange
            const string otherComponentBaseUrl = "https://api.othercomponent.com/";
            var          serviceCollection     = new ServiceCollection();

            serviceCollection.Configure <AppSettings>(settings =>
            {
                settings.OtherComponentBaseUrl = otherComponentBaseUrl;
            });

            var httpMessageHandler = new TestHttpMessageHandler();

            httpMessageHandler.PushGetResponse(new Uri(new Uri(otherComponentBaseUrl), "/secret"), HttpStatusCode.OK, "Mellon!");
            var fixture = new AuthorizedTestFixture <DemoStartup>(httpMessageHandler: httpMessageHandler, serviceCollection: serviceCollection);

            // Act
            var request = new HttpRequestMessage(HttpMethod.Get, ApiEndpointGetFromOtherComponent);

            request.Headers.Add("Authorization", "Bearer " + fixture.TokenService.GetToken());
            var response = await fixture.HttpClient.SendAsync(request);

            // Assert
            Assert.True(response.IsSuccessStatusCode);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
        public async void ExpiredTokenIsUnauthorized()
        {
            // Arrange
            var fixture = new AuthorizedTestFixture <DemoStartup>();

            // Act
            var request = new HttpRequestMessage(HttpMethod.Get, ApiEndpointRequiringAuthorization);

            request.Headers.Add("Authorization", "Bearer " + fixture.TokenService.GetExpiredToken());
            var response = await fixture.HttpClient.SendAsync(request);

            // Assert
            Assert.False(response.IsSuccessStatusCode);
            Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
        }
Example #4
0
        public async void TokenWithAdminRoleIsAuthorized()
        {
            // Arrange
            var fixture = new AuthorizedTestFixture <DemoStartup>();
            var claims  = new List <Claim>
            {
                new Claim(ClaimTypes.Role, "Administrator")
            };

            // Act
            var request = new HttpRequestMessage(HttpMethod.Get, ApiEndpointRquiringAdminRole);

            request.Headers.Add("Authorization", "Bearer " + fixture.TokenService.GetToken(claims));
            var response = await fixture.HttpClient.SendAsync(request);

            // Assert
            Assert.True(response.IsSuccessStatusCode);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }