public async Task CreateUser_ReturnsOk()
        {
            // Arrange
            _hostBuilder.ConfigureTestContainer <ContainerBuilder>(builder =>
            {
                var mockIdNumberService = new Mock <IIdNumberValidationService>();
                mockIdNumberService.Setup(service =>
                                          service.IsIdNumberValid(It.IsAny <string>()))
                .ReturnsAsync(true);

                builder.Register(c => mockIdNumberService.Object)
                .As <IIdNumberValidationService>();
            });

            var server = new TestServer(_hostBuilder);
            var client = server.CreateClient();

            // Act
            var validIdNumber = "12345";
            var response      = await client.PostAsJsonAsync($"{_apiUrl}", new User
            {
                FirstName = "John",
                LastName  = "Doe",
                IdNumber  = validIdNumber
            });

            // Assert
            response.EnsureSuccessStatusCode();
        }
Exemplo n.º 2
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            //配置数据库内存测试
            builder.ConfigureServices(services =>
            {
                var sp = services.BuildServiceProvider();

                using (var scope = sp.CreateScope())
                {
                    var scopedServices = scope.ServiceProvider;
                    var db             = scopedServices.GetRequiredService <DataDbContext>();
                    db.Database.EnsureCreated();
                    try
                    {
                        Utilities.InitializeDbForTests(db);
                    }
                    catch (Exception ex)
                    {
                    }
                }
            });

            //注入autofac
            var service = A.Fake <AutoFacModule>();

            void ConfigureTestContainer(ContainerBuilder builder)
            {
                builder.RegisterInstance(service);
            }

            builder.ConfigureTestContainer <ContainerBuilder>(ConfigureTestContainer);
        }
Exemplo n.º 3
0
        public async Task Get_Returns_Weather_Forecast()
        {
            // Arrange
            _hostBuilder.ConfigureTestContainer <ContainerBuilder>(builder =>
            {
                var mockRequestValidationService = new Mock <IRequestValidationService>();
                mockRequestValidationService.Setup(service =>
                                                   service.RequestCanBeProcessed())
                .Returns(true);

                builder.Register(c => mockRequestValidationService.Object)
                .As <IRequestValidationService>();
            });

            var server = new TestServer(_hostBuilder);
            var client = server.CreateClient();

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

            // Assert
            response.EnsureSuccessStatusCode();
        }
Exemplo n.º 4
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            Debug.WriteLine("WebApplicationFactory.ConfigureWebHost");

            builder.ConfigureTestContainer <object>(
                container =>
            {
                // Never called :shrugging:
                Debug.WriteLine("builder.ConfigureTestContainer");
                Debugger.Break();
            });

            builder.ConfigureServices(
                services =>
            {
                Debug.WriteLine("builder.ConfigureServices");
            });

            builder.ConfigureTestServices(
                services =>
            {
                Debug.WriteLine("builder.ConfigureTestServices");
            });
        }