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()); }
public async Task GetPorNombreAsync_Flujo_ErrorYEscribeLog() { // Arrange const HttpStatusCode ERROR_ESPERADO = HttpStatusCode.InternalServerError; const string CODIGO_VALIDACION = "E01"; Func <string, bool> ALGUNA_DESC_ERROR = (string msj) => !string.IsNullOrWhiteSpace(msj); _paisesLogger = _mockConfig.MockearPaisesControllerLoggerMock(); _apiPaises = _mockConfig.MockearApiPaises(); _factory = _mockConfig.Create(); _client = _factory.CreateClient(new WebApplicationFactoryClientOptions { AllowAutoRedirect = false }); _apiPaises.Setup(s => s.BuscarPaisesPorNombreAsync("xxx")) .ThrowsAsync(new Exception("Excepción de prueba")) .Verifiable(); _paisesLogger.SetupAnyLog(); // Act var response = await _client.GetAsync($"/pais/nombre/xxx"); // Assert var respCode = response.StatusCode; var json = await response.Content.ReadAsStringAsync(); var validacion = JsonSerializer.Deserialize <MensajeValidacion>(json, _jsonSettings); Assert.Equal(ERROR_ESPERADO, response.StatusCode); Assert.NotNull(validacion); Assert.Equal(CODIGO_VALIDACION, validacion.Mensaje); Assert.True(ALGUNA_DESC_ERROR(validacion.Descripcion)); _apiPaises.Verify(); _paisesLogger.VerifyAll(); }