public async Task Deve_Buscar_Registro_Por_Id_Pela_Controller() { //Given var services = new ServiceCollection(); var entity = new TestEntity( new NomeValueObject("Weslley_1", "Carneiro"), new EmailValueObject("*****@*****.**") ); var entity2 = new TestEntity( new NomeValueObject("Weslley_2", "Carneiro"), new EmailValueObject("*****@*****.**") ); var entity3 = new TestEntity( new NomeValueObject("Weslley_3", "Carneiro"), new EmailValueObject("*****@*****.**") ); services.AddLogging(); services.AddAutoMapper(typeof(TestViewModel)); services.AddContext <TestContext>(new ContextOptionsBuilder()); services.AddRepository <ITestReadRepository, TestReadRepository>("Optsol.Components.Test.Utils"); services.AddApplicationServices <IServiceApplication, TestServiceApplication>("Optsol.Components.Test.Utils"); services.AddAServices(); var provider = services.BuildServiceProvider(); IApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> controllerBase = new ApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel>( provider.GetRequiredService <ILogger <ApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> > >(), provider.GetRequiredService <IBaseServiceApplication <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> >(), provider.GetRequiredService <IResponseFactory>()); var unitOfWork = provider.GetRequiredService <IUnitOfWork>(); var repository = provider.GetRequiredService <ITestWriteRepository>(); await repository.InsertAsync(entity); await repository.InsertAsync(entity2); await repository.InsertAsync(entity3); await unitOfWork.CommitAsync(); //When var actionResult = await controllerBase.GetByIdAsync(entity.Id); //Then ((OkObjectResult)actionResult).StatusCode.Should().NotBeNull(); ((OkObjectResult)actionResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var resultObj = JsonConvert.DeserializeObject <Response <TestViewModel> >(((OkObjectResult)actionResult).Value.ToJson()); resultObj.Should().NotBeNull(); resultObj.Success.Should().BeTrue(); resultObj.Failure.Should().BeFalse(); resultObj.Messages.Should().BeEmpty(); resultObj.Data.Should().NotBeNull(); resultObj.Data.Nome.Should().Be(entity.Nome.ToString()); resultObj.Data.Contato.Should().Be(entity.Email.ToString()); resultObj.Data.Ativo.Should().Be("Inativo"); }
public async Task Deve_Atualizar_Registro_Pelo_Servico() { //Given InsertTestViewModel model = new InsertTestViewModel(); model.Nome = "Weslley Carneiro"; model.Contato = "*****@*****.**"; var services = new ServiceCollection(); services.AddLogging(); services.AddAutoMapper(typeof(TestViewModel)); services.AddContext <TestContext>(new ContextOptionsBuilder()); services.AddApplicationServices <ITestServiceApplication, TestServiceApplication>("Optsol.Components.Test.Utils"); services.AddAServices(); var provider = services.BuildServiceProvider(); ITestServiceApplication serviceApplication = provider.GetRequiredService <ITestServiceApplication>(); IApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> controllerBase = new ApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel>( provider.GetRequiredService <ILogger <ApiControllerBase <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> > >(), provider.GetRequiredService <IBaseServiceApplication <TestEntity, TestViewModel, TestViewModel, InsertTestViewModel, UpdateTestViewModel> >(), provider.GetRequiredService <IResponseFactory>()); await serviceApplication.InsertAsync(model); var data = (await serviceApplication.GetAllAsync()).DataList.Single(); var updateModel = new UpdateTestViewModel(); updateModel.Id = data.Id; updateModel.Nome = $"Weslley Alterado"; updateModel.Contato = model.Contato; //When var actionResult = await controllerBase.UpdateAsync(updateModel); //Then ((OkObjectResult)actionResult).StatusCode.Should().NotBeNull(); ((OkObjectResult)actionResult).StatusCode.Should().Be((int)HttpStatusCode.OK); var resultObj = JsonConvert.DeserializeObject <Response>(((OkObjectResult)actionResult).Value.ToJson()); resultObj.Should().NotBeNull(); resultObj.Success.Should().BeTrue(); resultObj.Failure.Should().BeFalse(); resultObj.Messages.Should().BeEmpty(); var resultService = await serviceApplication.GetByIdAsync(updateModel.Id); resultService.Data.Should().NotBeNull(); resultService.Data.Id.Should().NotBeEmpty(); resultService.Data.Nome.Should().Be(updateModel.Nome); resultService.Data.Contato.Should().Be(updateModel.Contato); resultService.Data.Ativo.Should().Be("Inativo"); }
private void ConfigurationDependencyInjection() { var services = new ServiceCollection(); services.AddLogging(); services.AddContext <PlaygroundContext>(new ContextOptionsBuilder()); services.AddRepository <IClienteReadRepository, ClienteReadRepository>("Optsol.Playground.Domain", "Optsol.Playground.Infra"); services.AddApplicationServices <IClienteServiceApplication, ClienteServiceApplication>("Optsol.Playground.Application"); services.AddAServices(); services.AddAutoMapper(typeof(ClienteViewModelToEntityMapper)); _serviceProvider = services.BuildServiceProvider(); }