public async Task CatalogoFilmesWebAPITests_Dado_Solicitacao_Para_Obter_Todos_Filmes_Quando_Consultar_API_Valida_Serializacao_Dos_Filmes() { const int OS_INCRIVEIS = 0; var messageHandler = new MockHttpMessageHandler(ObterExemploJsonResposta(), HttpStatusCode.OK); var httpClient = new HttpClient(messageHandler); var catalogo = new CatalogoFilmesWebAPI(httpClient, ObterOpcoesCatalogoFilmes()); var filmes = await catalogo.ObterTodos(); Assert.AreEqual(expected: 16, filmes.Count, "obtido todos os 16 filmes do exemplo de JSON de resposta fornecido no teste."); Assert.AreEqual(expected: "tt3606756", filmes.ElementAt(OS_INCRIVEIS).Id, "o Id do filme \"Os Incríveis 2\" está correto."); Assert.AreEqual(expected: "Os Incríveis 2", filmes.ElementAt(OS_INCRIVEIS).Titulo, "o Id do filme \"Os Incríveis 2\" está correto."); Assert.AreEqual(expected: 2018, filmes.ElementAt(OS_INCRIVEIS).Ano, "o Id do filme \"Os Incríveis 2\" está correto."); Assert.IsTrue(filmes.ElementAt(OS_INCRIVEIS).PossuiNotaIgual(new FilmeTestBuilder().ComNota(8.5m).Build()), "o Id do filme \"Os Incríveis 2\" está correto."); }
public async Task CatalogoFilmesWebAPITests_Dado_Conjunto_De_Ids_De_Filmes_Quando_Consultar_API_Retorna_Filmes_Relacionados_Aos_Ids() { var messageHandler = new MockHttpMessageHandler(ObterExemploJsonResposta(), HttpStatusCode.OK); var httpClient = new HttpClient(messageHandler); var catalogo = new CatalogoFilmesWebAPI(httpClient, ObterOpcoesCatalogoFilmes()); var idsFilmes = new List <string> { "tt3606756", "tt4881806", "tt5164214", "tt7784604", "tt4154756", "tt5463162", "tt3778644", "tt3501632" }; var filmes = await catalogo.ObterPorIds(idsFilmes); Assert.AreEqual(expected: 8, actual: filmes.Count, $"Quantidade de filmes esperados é 8 e a quantidade de filmes obtidos com filtro foi {filmes.Count}."); foreach (var id in idsFilmes) { Assert.IsTrue(filmes.Any(f => f.Id == id), $"O filme com Id {id} encontra-se entre os filmes retornados da busca."); } }