コード例 #1
0
        public async Task Authorized_user_with_access_as_user_scope_can_get_the_forcast()
        {
            // Arrange
            var client = _factory
                         .WithTestSchemeAuth(new List <Claim>()
            {
                new Claim("scp", "access_as_user")
            })
                         .CreateClient();

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

            // Assert
            response.EnsureSuccessStatusCode(); // Status Code 200-299
            var weather = await response.Content.ReadAsStringAsync();

            Assert.Contains("temperatureF", weather);
        }
コード例 #2
0
        public async Task Server_exceptions_are_handled()
        {
            // Arrange
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Error()
                         .Enrich.FromLogContext()
                         .WriteTo.InMemory()
                         .CreateLogger();

            var client = _factory
                         .WithTestSchemeAuth(new List <Claim>()
            {
                new Claim("scp", "foobar")
            })
                         .CreateClient();
            var expectedCorrelationId = "SomeBar";
            var request = new HttpRequestMessage(HttpMethod.Options, "diagnostic/throw");

            request.Headers.Add("CorrelationId", expectedCorrelationId);

            // Act
            var response = await client.SendAsync(request);

            // Assert

            response.IsSuccessStatusCode.Should().BeFalse();
            var errorResponse = await response.Content.ReadAsExample(new { requestId = default(string), correlationId = default(string), message = default(string) });

            errorResponse.correlationId.Should().Be(expectedCorrelationId);
            errorResponse.message.Should().Be("An error occurred in our API.  Please refer to the request id with our support team.");

            InMemorySink.Instance.Should()
            .HaveMessage("Here is an unhandled exception.")
            .Appearing().Once()
            .WithProperty("RequestId").WithValue(errorResponse.requestId);

            Log.CloseAndFlush();
        }