Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
        public async Task TestActionServiceInOutDatabaseValidationOk(int num, bool hasErrors)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();

                var bizInstance = new BizActionInOutWriteDbAsync(context);
                var runner      = new ActionServiceAsync <IBizActionInOutWriteDbAsync>(context, bizInstance, _mapper, _noCachingConfig);
                var input       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                var data = await runner.RunBizActionAsync <BizDataOut>(input);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                    input.SetupSecondaryDataCalled.ShouldBeFalse();
                    data.ShouldBeNull();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                    data.Output.ShouldEqual(num.ToString());
                }
            }
        }
Exemplo n.º 3
0
        public void TestValidation(int num, bool hasErrors, bool doNotValidateSaveChanges)
        {
            //SETUP
            var config = new GenericBizRunnerConfig {
                TurnOffCaching = true, DoNotValidateSaveChanges = doNotValidateSaveChanges
            };
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var mapper      = SetupHelpers.CreateMapper <ServiceLayerBizInDto, ServiceLayerBizOutDto>();
                var bizInstance = new BizActionInOutWriteDb(context);
                var runner      = new ActionServiceInOut <IBizActionInOutWriteDb, BizDataIn, BizDataOut>(true, config);
                var inDto       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                var data = runner.RunBizActionDbAndInstance <ServiceLayerBizOutDto>(context, bizInstance, mapper, inDto);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                }
            }
        }
        public void TestActionServiceDtosDatabaseValidationOk(int num, bool hasErrors)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var bizInstance = new BizActionInOnlyWriteDb(context);
                var runner      =
                    new ActionService <IBizActionInOnlyWriteDb>(context, bizInstance, _wrappedConfig);
                var input = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                runner.RunBizAction(input);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                    input.SetupSecondaryDataCalled.ShouldBeTrue();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                }
            }
        }
Exemplo n.º 5
0
        public void TestActionServiceInOnlyMappingDatabaseOk(int num, bool hasErrors)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var mapper      = SetupHelpers.CreateMapper <ServiceLayerBizInDto, ServiceLayerBizOutDto>();
                var bizInstance = new BizActionInOnlyWriteDb(context);
                var runner      = new ActionServiceInOnly <IBizActionInOnlyWriteDb, BizDataIn>(true, _noCachingConfig);
                var inDto       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                runner.RunBizActionDbAndInstance(context, bizInstance, mapper, inDto);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                }
            }
        }
        public void TestActionServiceInOutDtosOk(int num, bool hasErrors)
        {
            //SETUP
            var mapper      = SetupHelpers.CreateMapper <ServiceLayerBizInDto, ServiceLayerBizOutDto>();
            var bizInstance = new BizActionInOut();
            var runner      = new ActionService <IBizActionInOut>(_emptyDbContext, bizInstance, mapper, _noCachingConfig);
            var input       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            var data = runner.RunBizAction <ServiceLayerBizOutDto>(input);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
            if (hasErrors)
            {
                data.ShouldBeNull();
                bizInstance.Message.ShouldEqual("Failed with 1 error");
            }
            else
            {
                data.Output.ShouldEqual(num.ToString());
            }
        }
Exemplo n.º 7
0
        public async Task TestActionServiceInOnlyMappingDatabaseOk(int num, bool hasErrors)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>(_noCachingConfig);
                utData.AddDtoMapping <ServiceLayerBizOutDto>();
                var bizInstance = new BizActionInOnlyWriteDbAsync(context);
                var runner      = new ActionServiceInOnlyAsync <IBizActionInOnlyWriteDbAsync, BizDataIn>(true, utData.WrappedConfig);
                var inDto       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                await runner.RunBizActionDbAndInstanceAsync(context, bizInstance, inDto);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                }
            }
        }
Exemplo n.º 8
0
        public async Task TestValidation(int num, bool hasErrors, bool doNotValidateSaveChanges)
        {
            //SETUP
            var config = new GenericBizRunnerConfig {
                TurnOffCaching = true, DoNotValidateSaveChanges = doNotValidateSaveChanges
            };
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>(config);
                utData.AddDtoMapping <ServiceLayerBizOutDto>();
                var bizInstance = new BizActionInOutWriteDbAsync(context);
                var runner      = new ActionServiceInOutAsync <IBizActionInOutWriteDbAsync, BizDataIn, BizDataOut>(true, utData.WrappedConfig);
                var inDto       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                var data = await runner.RunBizActionDbAndInstanceAsync <ServiceLayerBizOutDto>(context, bizInstance, inDto);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                }
            }
        }
        public void TestActionServiceValueInOutDatabaseOk(int num, bool hasErrors)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();

                var bizInstance = new BizActionInOutWriteDb(context);
                var runner      = new ActionService <IBizActionInOutWriteDb>(context, bizInstance, _wrappedConfig);
                var input       = new ServiceLayerBizInDto {
                    Num = num
                };

                //ATTEMPT
                var data = runner.RunBizAction <BizDataOut>(input);

                //VERIFY
                bizInstance.HasErrors.ShouldEqual(hasErrors);
                if (hasErrors)
                {
                    context.LogEntries.Any().ShouldBeFalse();
                    data.ShouldBeNull();
                }
                else
                {
                    context.LogEntries.Single().LogText.ShouldEqual(num.ToString());
                    data.Output.ShouldEqual(num.ToString());
                }
            }
        }
Exemplo n.º 10
0
        public async Task TestResetDtoGenericActionsDtoBad()
        {
            //SETUP
            var service = new ActionServiceAsync <IBizActionOutOnly>(_emptyDbContext, new BizActionOutOnly(), _wrappedConfig);
            var data    = new ServiceLayerBizInDto();

            //ATTEMPT
            var ex = await Assert.ThrowsAsync <InvalidOperationException>(async() => await service.ResetDtoAsync(data));

            //VERIFY
            ex.Message.ShouldEqual("The action with interface of IBizActionOutOnly does not have an input, but you called it with a method that needs an input.");
        }
        public void TestResetDtoGenericActionsDtoBad()
        {
            //SETUP
            var service = new ActionService <IBizActionOutOnly>(_emptyDbContext, new BizActionOutOnly(), _mapper, _noCachingConfig);
            var data    = new ServiceLayerBizInDto();

            //ATTEMPT
            var ex = Assert.Throws <InvalidOperationException>(() => service.ResetDto(data));

            //VERIFY
            ex.Message.ShouldEqual("The action with interface of IBizActionOutOnly does not have an input, but you called it with a method that needs an input.");
        }
        public void TestBizInMappingDto()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>();

            //ATTEMPT
            var input = new ServiceLayerBizInDto {
                Num = 234
            };
            var data = utData.WrappedConfig.ToBizIMapper.Map <BizDataIn>(input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
Exemplo n.º 13
0
        public async Task TestBizInCopyAsyncSyncDtoOk()
        {
            //SETUP
            var mapper = SetupHelpers.CreateMapper <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = await copier.DoCopyToBizAsync <BizDataIn>(null, mapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public void TestSetupSecondaryDataDtoOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            copier.SetupSecondaryDataIfRequired(null, status, input);

            //VERIFY
            input.SetupSecondaryDataCalled.ShouldBeTrue();
        }
        public async Task TestSetupSecondaryDataSyncDtoOk()
        {
            //SETUP
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };
            var status = new TestBizActionStatus();

            //ATTEMPT
            await copier.SetupSecondaryDataIfRequiredAsync(null, status, input);

            //VERIFY
            input.SetupSecondaryDataCalled.ShouldBeTrue();
        }
        public async Task TestBizInCopyAsyncSyncDtoOk()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, true, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = await copier.DoCopyToBizAsync <BizDataIn>(null, utData.WrappedConfig.ToBizIMapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
Exemplo n.º 17
0
        public async Task Test11ResetDtoGenericActionsOk()
        {
            //SETUP
            var service = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, new BizActionInOutAsync(), _wrappedConfig);
            var data    = new ServiceLayerBizInDto {
                Num = 123
            };

            //ATTEMPT
            await service.ResetDtoAsync(data);

            //VERIFY
            data.ShouldNotBeNull();
            data.Num.ShouldEqual(123);
            data.SetupSecondaryDataCalled.ShouldBeTrue();
        }
Exemplo n.º 18
0
        public void TestActionServiceInOnlyMappingOk(int num, bool hasErrors)
        {
            //SETUP
            var mapper      = SetupHelpers.CreateMapper <ServiceLayerBizInDto, ServiceLayerBizOutDto>();
            var bizInstance = new BizActionInOnly();
            var runner      = new ActionServiceInOnly <IBizActionInOnly, BizDataIn>(false, _noCachingConfig);
            var inDto       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            runner.RunBizActionDbAndInstance(_dbContext, bizInstance, mapper, inDto);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
        }
        public void TestResetDtoGenericActionsOk()
        {
            //SETUP
            var service = new ActionService <IBizActionInOut>(_emptyDbContext, new BizActionInOut(), _mapper, _noCachingConfig);
            var data    = new ServiceLayerBizInDto {
                Num = 123
            };

            //ATTEMPT
            service.ResetDto(data);

            //VERIFY
            data.ShouldNotBeNull();
            data.Num.ShouldEqual(123);
            data.SetupSecondaryDataCalled.ShouldBeTrue();
        }
        public void TestBizInCopyOk()
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, true);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = copier.DoCopyToBiz <BizDataIn>(null, utData.WrappedConfig.ToBizIMapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
            input.CopyToBizDataCalled.ShouldBeTrue();
            input.SetupSecondaryDataCalled.ShouldBeFalse();
        }
        public void TestProfileOnDto()
        {
            //SETUP
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new ServiceLayerBizInDto());
            });
            var mapper = config.CreateMapper();

            //ATTEMPT
            var input = new ServiceLayerBizInDto {
                Num = 234
            };
            var data = mapper.Map <BizDataIn>(input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
Exemplo n.º 22
0
        public void TestActionServiceInOnlyMappingOk(int num, bool hasErrors)
        {
            //SETUP
            var utData = NonDiBizSetup.SetupDtoMapping <ServiceLayerBizInDto>(_noCachingConfig);

            utData.AddDtoMapping <ServiceLayerBizOutDto>();
            var bizInstance = new BizActionInOnly();
            var runner      = new ActionServiceInOnly <IBizActionInOnly, BizDataIn>(false, utData.WrappedConfig);
            var inDto       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            runner.RunBizActionDbAndInstance(_dbContext, bizInstance, inDto);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
        }
        public void TestViaAddAutoMapper()
        {
            //SETUP
            IServiceCollection services = new ServiceCollection();

            services.AddAutoMapper();

            var mapper = ((MapperConfiguration)services[0].ImplementationInstance).CreateMapper();

            //ATTEMPT
            var input = new ServiceLayerBizInDto {
                Num = 234
            };
            var data = mapper.Map <BizDataIn>(input);

            //VERIFY
            data.Num.ShouldEqual(234);
        }
        public void TestBizInCopyOk()
        {
            //SETUP
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new ServiceLayerBizInDto());
            });
            var mapper = config.CreateMapper();
            var copier = DtoAccessGenerator.BuildCopier(typeof(ServiceLayerBizInDto), typeof(BizDataIn), true, false, _noCachingConfig);
            var input  = new ServiceLayerBizInDto {
                Num = 234
            };

            //ATTEMPT
            var data = copier.DoCopyToBiz <BizDataIn>(null, mapper, input);

            //VERIFY
            data.Num.ShouldEqual(234);
            input.CopyToBizDataCalled.ShouldBeTrue();
            input.SetupSecondaryDataCalled.ShouldBeFalse();
        }
Exemplo n.º 25
0
        public void TestRegisterBizRunnerDtosFoundOk()
        {
            //SETUP
            var       service        = new ServiceCollection();
            DbContext emptyDbContext = new TestDbContext(SqliteInMemory.CreateOptions <TestDbContext>());

            service.RegisterBizRunnerWithDtoScans <TestDbContext>(Assembly.GetAssembly(typeof(ServiceLayerBizInDto)));
            var diProvider = service.BuildServiceProvider();

            //ATTEMPT
            var wrappedConfig = diProvider.GetRequiredService <IWrappedBizRunnerConfigAndMappings>();
            var bizInstance   = new BizActionInOut();
            var runner        = new ActionService <IBizActionInOut>(emptyDbContext, bizInstance, wrappedConfig);
            var input         = new ServiceLayerBizInDto {
                Num = 123
            };
            var result = runner.RunBizAction <ServiceLayerBizOutDto>(input);

            //VERIFY
            runner.Status.HasErrors.ShouldBeFalse();
            result.Output.ShouldEqual("123");
        }
        public async Task TestActionServiceInOutDtosOk(int num, bool hasErrors)
        {
            //SETUP
            var bizInstance = new BizActionInOnlyAsync();
            var runner      = new ActionServiceAsync <IBizActionInOnlyAsync>(_emptyDbContext, bizInstance, _wrappedConfig);
            var input       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            await runner.RunBizActionAsync(input);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
            if (hasErrors)
            {
                bizInstance.Message.ShouldEqual("Failed with 1 error");
            }
            else
            {
                bizInstance.Message.ShouldEqual("All Ok");
            }
        }
        public void TestActionServiceInOutDtosOk(int num, bool hasErrors)
        {
            //SETUP
            var bizInstance = new BizActionInOnly();
            var runner      = new ActionService <IBizActionInOnly>(_emptyDbContext, bizInstance, _mapper, _noCachingConfig);
            var input       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            runner.RunBizAction(input);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
            if (hasErrors)
            {
                bizInstance.Message.ShouldEqual("Failed with 1 error");
            }
            else
            {
                bizInstance.Message.ShouldEqual("All Ok");
            }
        }
Exemplo n.º 28
0
        public async Task TestActionServiceAsyncInOutSyncDtosOk(int num, bool hasErrors)
        {
            //SETUP
            var bizInstance = new BizActionInOutAsync();
            var runner      = new ActionServiceAsync <IBizActionInOutAsync>(_emptyDbContext, bizInstance, _wrappedConfig);
            var input       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            var data = await runner.RunBizActionAsync <ServiceLayerBizOutDto>(input);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
            if (hasErrors)
            {
                data.ShouldBeNull();
                bizInstance.Message.ShouldEqual("Failed with 1 error");
            }
            else
            {
                data.Output.ShouldEqual(num.ToString());
            }
        }
Exemplo n.º 29
0
        public void TestActionServiceInOutMappingOk(int num, bool hasErrors)
        {
            //SETUP
            var mapper      = SetupHelpers.CreateMapper <ServiceLayerBizInDto, ServiceLayerBizOutDto>();
            var bizInstance = new BizActionInOut();
            var runner      = new ActionServiceInOut <IBizActionInOut, BizDataIn, BizDataOut>(false, _noCachingConfig);
            var inDto       = new ServiceLayerBizInDto {
                Num = num
            };

            //ATTEMPT
            var data = runner.RunBizActionDbAndInstance <ServiceLayerBizOutDto>(_dbContext, bizInstance, mapper, inDto);

            //VERIFY
            bizInstance.HasErrors.ShouldEqual(hasErrors);
            if (hasErrors)
            {
                data.ShouldBeNull();
            }
            else
            {
                data.Output.ShouldEqual(inDto.Num.ToString());
            }
        }