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); }
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); }
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); }