Beispiel #1
0
        public async Task GetPorNombreAsync_Flujo_OK()
        {
            // Arrange
            const string BUSQUEDA      = "argentin";
            const string NOM_ESPERADO  = "Argentina";
            const int    HAB_ESPERADOS = 4700001;

            _paisesLogger = _mockConfig.MockearPaisesControllerLoggerMock();
            _apiServer    = _mockConfig.MockearPaisesApiServerMock();
            _apiServer.Given(Request.Create()
                             .WithPath($"/name/{BUSQUEDA}"))
            .RespondWith(Response.Create()
                         .WithSuccess()
                         .WithBody(JsonSerializer.Serialize(new PaisDto[] { new PaisDto {
                                                                                Nombre = NOM_ESPERADO, Poblacion = HAB_ESPERADOS
                                                                            } }))
                         .WithHeader("Content-Type", "application/json;charset=utf-8")
                         );

            _factory = _mockConfig.Create();
            _client  = _factory.CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false
            });

            //while (true)
            //    Thread.Sleep(1000);
            // Act
            var response = await _client.GetAsync($"/pais/nombre/{BUSQUEDA}");

            // Assert
            var respCode = response.StatusCode;
            var json     = await response.Content.ReadAsStringAsync();

            var resultado = JsonSerializer.Deserialize <PaisDto[]>(json);
            var unicoRdo  = resultado?.FirstOrDefault();

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.True(resultado?.Length == 1);
            Assert.NotNull(unicoRdo);
            Assert.Equal(NOM_ESPERADO, unicoRdo.Nombre);
            Assert.Equal(HAB_ESPERADOS, unicoRdo.Poblacion);
            Assert.True(_apiServer.VerifyAll());
        }