public async Task ProcessRequest_WritesExpectedResponse()
        {
            const string expectedIdeName     = "Visual Studio";
            const string expectedDescription = "myproject.csproj";

            var apiResponse = new StatusResponse(expectedIdeName, expectedDescription);

            var apiHandlerMock = new Mock <IStatusRequestHandler>();

            apiHandlerMock.Setup(x => x.GetStatusAsync()).Returns(Task.FromResult <IStatusResponse>(apiResponse));

            var responseStream = new MemoryStream();
            var context        = new OwinContext();

            context.Response.Body = responseStream;

            var testSubject = new StatusOwinRequestHandler(apiHandlerMock.Object);

            // Act
            await testSubject.ProcessRequest(context)
            .ConfigureAwait(false);

            context.Response.ContentType.Should().Be("application/json");
            context.Response.StatusCode.Should().Be((int)HttpStatusCode.OK);
            var responseData = Deserialize(responseStream);

            responseData["ideName"].Type.Should().Be(JTokenType.String);
            responseData["ideName"].ToString().Should().Be(expectedIdeName);

            responseData["description"].Type.Should().Be(JTokenType.String);
            responseData["description"].ToString().Should().Be(expectedDescription);
        }
        public void ApiPath_ReturnsExpectedPath()
        {
            var testSubject = new StatusOwinRequestHandler(Mock.Of <IStatusRequestHandler>());

            testSubject.ApiPath.Should().Be("/status");
        }