public async Task Test3_ConsultarPrestacoeContratoExcluido() { //Arrange var _options = new DbContextOptionsBuilder <Contratos.Data.DataContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking) .Options; // Insert seed data into the database using one instance of the context using (var context = new Contratos.Data.DataContext(_options)) { Contrato contrato = new Contrato(); contrato.DataContratacao = DateTime.Now.AddDays(-60); contrato.ValorFianciado = 12000; contrato.QuantidadeParcelas = 3; context.Contratos.Add(contrato); Prestacao p1 = new Prestacao(); p1.ContratoId = 1; p1.DataVencimento = DateTime.Now.AddDays(-29); p1.Valor = 1000; context.Prestacoes_Contrato.Add(p1); Prestacao p2 = new Prestacao(); p2.ContratoId = 1; p2.DataVencimento = DateTime.Now.AddDays(-1); p2.Valor = 1000; context.Prestacoes_Contrato.Add(p2); Prestacao p3 = new Prestacao(); p3.ContratoId = 1; p3.DataVencimento = DateTime.Now.AddDays(+29); p3.Valor = 1000; context.Prestacoes_Contrato.Add(p3); context.SaveChanges(); context.Entry <Contrato>(contrato).State = EntityState.Detached; context.Entry <Prestacao>(p1).State = EntityState.Detached; context.Entry <Prestacao>(p2).State = EntityState.Detached; context.Entry <Prestacao>(p3).State = EntityState.Detached; //Act ActionResult <List <Prestacao> > result = await prestacaoController.GetByContratoId(context, 1); ActionResult <Contrato> result1 = await contratoController.Delete(context, 1); ActionResult <List <Prestacao> > result2 = await prestacaoController.GetByContratoId(context, 1); //Assert // antes da exclusao existem prestacoes Assert.IsType <List <Prestacao> >(result.Value); Assert.NotEmpty(result.Value); //apos exclusao nao existem mais Assert.IsType <List <Prestacao> >(result2.Value); Assert.Empty(result2.Value); } }
public async Task Test2_AlterarPrestacao() { // Arrange var _options = new DbContextOptionsBuilder <Contratos.Data.DataContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking) .Options; // Insert seed data into the database using one instance of the context using (var context = new Contratos.Data.DataContext(_options)) { Contrato contrato = new Contrato(); contrato.DataContratacao = DateTime.Now.AddDays(-60); contrato.ValorFianciado = 12000; contrato.QuantidadeParcelas = 3; context.Contratos.Add(contrato); Prestacao p1 = new Prestacao(); p1.ContratoId = 1; p1.DataVencimento = DateTime.Now.AddDays(-29); p1.Valor = 1000; context.Prestacoes_Contrato.Add(p1); Prestacao p2 = new Prestacao(); p2.ContratoId = 1; p2.DataVencimento = DateTime.Now.AddDays(-1); p2.Valor = 1000; context.Prestacoes_Contrato.Add(p2); Prestacao p3 = new Prestacao(); p3.ContratoId = 1; p3.DataVencimento = DateTime.Now.AddDays(+29); p3.Valor = 1000; context.Prestacoes_Contrato.Add(p3); context.SaveChanges(); context.Entry <Contrato>(contrato).State = EntityState.Detached; context.Entry <Prestacao>(p1).State = EntityState.Detached; context.Entry <Prestacao>(p2).State = EntityState.Detached; context.Entry <Prestacao>(p3).State = EntityState.Detached; //context.SaveChanges(); //Act var result = await prestacaoController.Baixar(context, DateTime.Now.AddDays(-10).ToString(), 1); ActionResult <List <Prestacao> > result2 = await prestacaoController.GetByContratoId(context, 1); Assert.IsType <Microsoft.AspNetCore.Mvc.OkObjectResult>(result.Result); var model = ((Microsoft.AspNetCore.Mvc.OkObjectResult)result.Result).Value; Assert.IsType <Prestacao>(model); var valor = ((Prestacao)model).StatusPrestacao; //Assert //verifica o status apos a transacao Assert.Equal("Baixada", valor); //verifica se as prestacoes estao na base Assert.IsType <List <Prestacao> >(result2.Value); Assert.Equal(3, result2.Value.Count); // verifica o status das prestacoes Assert.Equal("Baixada", result2.Value[0].StatusPrestacao); Assert.Equal("Atrasada", result2.Value[1].StatusPrestacao); Assert.Equal("Aberta", result2.Value[2].StatusPrestacao); } }