예제 #1
0
        public async Task DeleteMissingWidget_Uses404()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.DeleteAsync("http://local.example.com/v1/widgets/xyzzy");

            response.StatusCode.Should().Be(HttpStatusCode.NotFound);
        }
예제 #2
0
        public async Task MissingBody_BadRequest()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.PostAsync("http://local.example.com/v1/kitchen", new ByteArrayContent(new byte[0]));

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
예제 #3
0
        public async Task DeleteExistingWidget_Uses204()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.DeleteAsync("http://local.example.com/v1/widgets/" + InMemoryExampleApiRepository.SampleWidgets[0].Id);

            response.StatusCode.Should().Be(HttpStatusCode.NoContent);
        }
예제 #4
0
        public async Task NotAdminError_Uses403()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.PostAsync("http://local.example.com/v1/kitchen", new StringContent("{}", Encoding.UTF8, HttpServiceUtility.JsonMediaType));

            response.StatusCode.Should().Be(HttpStatusCode.Forbidden);
        }
예제 #5
0
        public async Task FieldNotInTheSpec_Success()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.PostAsync("http://local.example.com/v1/widgets", new StringContent("{\"name\":\"xyzzy\",\"notInTheSpec\":42}", Encoding.UTF8, HttpServiceUtility.JsonMediaType));

            response.StatusCode.Should().Be(HttpStatusCode.Created);
        }
예제 #6
0
        public async Task UnexpectedJson_BadRequest()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.PostAsync("http://local.example.com/v1/widgets", new StringContent("{\"name\":{}}", Encoding.UTF8, HttpServiceUtility.JsonMediaType));

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
            (await JsonHttpContentSerializer.Instance.ReadHttpContentAsync <ServiceErrorDto>(response.Content)).Value.Code.Should().Be(ServiceErrors.InvalidRequest);
        }
예제 #7
0
        public async Task GetExistingWidget_Uses200()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.GetAsync("http://local.example.com/v1/widgets/" + InMemoryExampleApiRepository.SampleWidgets[0].Id);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await JsonHttpContentSerializer.Instance.ReadHttpContentAsync <WidgetDto>(response.Content)).Value.Should().BeDto(InMemoryExampleApiRepository.SampleWidgets[0]);
        }
예제 #8
0
        public async Task GetWidgetsQuery_UsesShortQueryParameter()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var response   = await httpClient.GetAsync("http://local.example.com/v1/widgets?q=" + InMemoryExampleApiRepository.SampleWidgets[1].Name);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            (await JsonHttpContentSerializer.Instance.ReadHttpContentAsync <GetWidgetsResponseDto>(response.Content)).Value.Widgets[0].Should().BeDto(InMemoryExampleApiRepository.SampleWidgets[1]);
        }
예제 #9
0
        public async Task CreateWidget_Uses201()
        {
            var httpClient = TestUtility.CreateTestHttpClient();
            var widget     = new WidgetDto();
            var response   = await httpClient.PostAsync("http://local.example.com/v1/widgets", JsonHttpContentSerializer.Instance.CreateHttpContent(widget));

            response.StatusCode.Should().Be(HttpStatusCode.Created);
            (await JsonHttpContentSerializer.Instance.ReadHttpContentAsync <WidgetDto>(response.Content)).Value.Id.Should().NotBeNull();
        }