Пример #1
0
        public async Task GivenPostingAValidModel_Post_ReturnsAndHttp201()
        {
            // Arrange.
            var fakeVehicle             = FakeVehicleHelpers.CreateAFakeVehicle();
            var currentFakeVehicleCount = StubbedFakeVehicleRepository.CreateAFakeVehicleRepository()
                                          .Index()
                                          .Count();
            var formData = new Dictionary <string, string>
            {
                { nameof(FakeVehicle.Id), fakeVehicle.Id.ToString() },
                { nameof(FakeVehicle.Name), fakeVehicle.Name },
                { nameof(FakeVehicle.RegistrationNumber), fakeVehicle.RegistrationNumber },
                { nameof(FakeVehicle.Colour), fakeVehicle.Colour.ToString() }
            };

            var content = new FormUrlEncodedContent(formData);

            // Act.
            var response = await _factory.CreateClient().PostAsync("/test", content);

            // Assert.
            response.EnsureSuccessStatusCode();
            response.StatusCode.ShouldBe(HttpStatusCode.Created);
            response.Headers.Location.ShouldBe(new Uri($"http://localhost/test/{currentFakeVehicleCount + 1 }"));
            var responseString = await response.Content.ReadAsStringAsync();

            responseString.ShouldBeNullOrWhiteSpace();
        }
        // TODO: Replace this with proper Integration testing overrides.
        //       REF: https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.1#basic-tests-with-the-default-webapplicationfactory
        // This method can be overwritten in a test project to define our repository.
        //          You would not do this in production, but we need to test our Helper library!
        public virtual void ConfigureRepositories(IServiceCollection services)
        {
            // Create our fake data.
            var stubbedFakeVehicleRepository = StubbedFakeVehicleRepository.CreateAFakeVehicleRepository();

            // Inject our repo.
            services.AddSingleton <IFakeVehicleRepository>(stubbedFakeVehicleRepository);
        }
Пример #3
0
        public async Task GivenAValidId_Get_ReturnsAnHttp200()
        {
            // Arrange.
            const int id = 1;
            var       expectedFakeVehicle = StubbedFakeVehicleRepository.CreateAFakeVehicleRepository()
                                            .Get(id);

            // Act.
            var response = await _factory.CreateClient().GetAsync($"/test/{id}");

            // Assert.
            response.IsSuccessStatusCode.ShouldBeTrue();
            await response.Content.ShouldLookLike(expectedFakeVehicle);
        }