예제 #1
0
        public void ModelFooServiceInsertOrUpdateUseCase()
        {
            var modelFooRepository = MockHelper.GetMockRepository(ModelFoos);
            var modelFooService    = new ModelFooService(modelFooRepository);

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo());
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Single(ex.Errors);
                    Assert.Equal(ModelFooService.RequiredName, ex.Errors[0].Message);
                    throw;
                }
            });

            modelFooService = new ModelFooService(modelFooRepository);

            modelFooService.ValidateAndInsertOrUpdate(new ModelFoo {
                Name = "Test"
            });
            Assert.Equal(3, ModelFoos.Count);
            Assert.Equal("Test", ModelFoos[2].Name);
        }
예제 #2
0
 public void TestBusinessRulesBaseFailsWhenUsingNullRepository()
 {
     Assert.Throws <ArgumentNullException>(
         () =>
     {
         var businessRulesBase = new ModelFooService(null);
     });
 }
예제 #3
0
        public void use_ModelFooService_to_interact()
        {
            using (var context = new FooContext(optionsBuilder.Options))
            {
                var modelFooRepository = new ModelFooRepository(context);
                var modelFooService    = new ModelFooService(modelFooRepository);

                var modelFoo = modelFooService.ValidateAndInsertOrUpdate(new ModelFoo {
                    Name = "Test 1"
                });
                modelFooService.SaveChanges();

                Assert.NotEqual(default(ModelFoo), modelFoo);
            }
        }
예제 #4
0
        public void CheckBusinessRulesBaseWorks()
        {
            var modelFooRepository = MockHelper.GetMockRepository(ModelFoos);
            var modelFooService    = new ModelFooService(modelFooRepository);

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo {
                        Id = 3, Name = "Test 2"
                    });
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Single(ex.Errors);
                    Assert.Equal(ModelFooService.DuplicateName, ex.Errors[0].Message);
                    throw;
                }
            });
            modelFooService.RulesException.Errors.Clear();

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo {
                        Id = 3, Name = null
                    });
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Single(ex.Errors);
                    Assert.Equal(ModelFooService.RequiredName, ex.Errors[0].Message);
                    throw;
                }
            });
            modelFooService.RulesException.Errors.Clear();

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo {
                        Id = 3, Name = "1"
                    });
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Single(ex.Errors);
                    Assert.Equal(ModelFooService.RangeLengthName, ex.Errors[0].Message);
                    throw;
                }
            });
            modelFooService.RulesException.Errors.Clear();

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo {
                        Id = 3, Name = "1234567"
                    });
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Equal(2, ex.Errors.Count());
                    Assert.Equal(ModelFooService.RangeLengthName, ex.Errors[1].Message);
                    Assert.True(ex.ContainsErrorForProperty("Name"));
                    throw;
                }
            });
            modelFooService.RulesException.Errors.Clear();

            Assert.Throws <RulesException <ModelFoo> >(
                () =>
            {
                try
                {
                    modelFooService.ValidateModel(new ModelFoo {
                        Id = 3
                    });
                }
                catch (RulesException <ModelFoo> ex)
                {
                    Assert.Single(ex.Errors);
                    Assert.True(ex.ContainsErrorForProperty("Name"));
                    throw;
                }
            });
            modelFooService.RulesException.Errors.Clear();
        }