public async Task TestActionServiceAsyncInOutAsyncDtosOk(int num, bool hasErrors) { //SETUP var mapper = SetupHelpers.CreateMapper <ServiceLayerBizInDtoAsync, ServiceLayerBizOutDtoAsync>(); var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, mapper, _noCachingConfig); var input = new ServiceLayerBizInDtoAsync { Num = num }; //ATTEMPT var data = await runner.RunBizActionAsync <ServiceLayerBizOutDtoAsync>(input); //VERIFY bizInstance.HasErrors.ShouldEqual(hasErrors); if (hasErrors) { data.ShouldBeNull(); bizInstance.Message.ShouldEqual("Failed with 1 error"); } else { data.Output.ShouldEqual(num.ToString()); } }
public async Task TestActionServiceInOutMappingOk(int num, bool hasErrors) { //SETUP var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>(_noCachingConfig); utData.AddDtoMapping <ServiceLayerBizOutDto>(); var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceInOutAsync <IBizActionInOutAsync, BizDataIn, BizDataOut>(false, utData.WrappedConfig); var inDto = new ServiceLayerBizInDto { Num = num }; //ATTEMPT var data = await runner.RunBizActionDbAndInstanceAsync <ServiceLayerBizOutDto>(_dbContext, bizInstance, inDto); //VERIFY bizInstance.HasErrors.ShouldEqual(hasErrors); if (hasErrors) { data.ShouldBeNull(); } else { data.Output.ShouldEqual(inDto.Num.ToString()); } }
public async Task TestCallHasNoInputBad() { //SETUP var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, _mapper, _noCachingConfig); //ATTEMPT var ex = await Assert.ThrowsAsync <InvalidOperationException>(async() => await runner.RunBizActionAsync <string>()); //VERIFY ex.Message.ShouldEqual("Your call of IBizActionInOutAsync needed 'Out, Async' but the Business class had a different setup of 'InOut, Async'"); }
public async Task TestInputIsBad() { //SETUP var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, _wrappedConfig); var input = "string"; //ATTEMPT var ex = await Assert.ThrowsAsync <InvalidOperationException>(async() => await runner.RunBizActionAsync <string>(input)); //VERIFY ex.Message.ShouldEqual("Indirect copy to biz action. from type = String, to type BizDataIn. Expected a DTO of type GenericActionToBizDto<BizDataIn,String>"); }
public async Task TestActionServiceErrorInSetupOk() { //SETUP var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, _mapper, _noCachingConfig); var input = await runner.GetDtoAsync <ServiceLayerBizInDto>(x => { x.RaiseErrorInSetupSecondaryData = true; }); //ATTEMPT await runner.RunBizActionAsync <ServiceLayerBizOutDtoAsync>(input); //VERIFY bizInstance.HasErrors.ShouldEqual(true); bizInstance.Errors.Single().ErrorMessage.ShouldEqual("Error in SetupSecondaryData"); }
public async Task TestActionServiceInOutValuesOkAsync(int num, bool hasErrors) { //SETUP var mapper = SetupHelpers.CreateMapper <ServiceLayerBizInDto>(); //doesn't need a mapper, but mapper msutn't be null var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceInOutAsync <IBizActionInOutAsync, BizDataIn, BizDataOut>(false, _noCachingConfig); var input = new BizDataIn { Num = num }; //ATTEMPT var data = await runner.RunBizActionDbAndInstanceAsync <BizDataOut>(_dbContext, bizInstance, mapper, input); //VERIFY bizInstance.HasErrors.ShouldEqual(hasErrors); if (hasErrors) { data.ShouldBeNull(); } else { data.Output.ShouldEqual(num.ToString()); } }
public async Task TestActionServiceAsyncInOutDirectOk(int num, bool hasErrors) { //SETUP var bizInstance = new BizActionInOutAsync(); var runner = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, _wrappedConfig); var input = new BizDataIn { Num = num }; //ATTEMPT var data = await runner.RunBizActionAsync <BizDataOut>(input); //VERIFY bizInstance.HasErrors.ShouldEqual(hasErrors); if (hasErrors) { data.ShouldBeNull(); bizInstance.Message.ShouldEqual("Failed with 1 error"); } else { data.Output.ShouldEqual(num.ToString()); } }