public async Task TestCrateWithValidationAsyncOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var entity = new NormalEntity {
                    MyInt = 1
                };

                //ATTEMPT
                context.Add(entity);
                var status = await context.SaveChangesWithValidationAsync();

                //VERIFY
                status.IsValid.ShouldBeTrue(status.GetAllErrors());
            }
            using (var context = new TestDbContext(options))
            {
                context.NormalEntities.Count().ShouldEqual(1);
                context.NormalEntities.Single().MyInt.ShouldEqual(1);
            }
        }
        public void TestSaveChangesWithValidationWithErrorsOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var entity = new NormalEntity {
                    MyInt = 1
                };
                context.Add(entity);
                context.SaveChangesWithValidation();
            }
            using (var context = new TestDbContext(options))
            {
                //ATTEMPT
                context.NormalEntities.Count().ShouldEqual(1);
                var entity = context.NormalEntities.Single();
                entity.MyInt = 1000;
                var status = context.SaveChangesWithValidation();

                //VERIFY
                status.IsValid.ShouldBeFalse();
                status.GetAllErrors().ShouldEqual("Normal Entity: The field MyInt must be between 0 and 100.");
            }
            using (var context = new TestDbContext(options))
            {
                context.NormalEntities.Count().ShouldEqual(1);
                context.NormalEntities.Single().MyInt.ShouldEqual(1);
            }
        }
コード例 #3
0
        public void TestUpdateWithValidationOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                context.Database.EnsureCreated();
                var entity = new NormalEntity {
                    MyInt = 1
                };
                context.Add(entity);
                context.SaveChangesWithValidation();
            }
            using (var context = new TestDbContext(options))
            {
                //ATTEMPT
                context.NormalEntities.Count().ShouldEqual(1);
                var entity = context.NormalEntities.Single();
                entity.MyInt = 2;
                context.SaveChangesWithValidation();
            }
            using (var context = new TestDbContext(options))
            {
                //VERIFY
                context.NormalEntities.Count().ShouldEqual(1);
                context.NormalEntities.Single().MyInt.ShouldEqual(2);
            }
        }
コード例 #4
0
        public void TestAbstractSetterKeyNotCopiedBack()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <TestDbContext>();

            using (var context = new TestDbContext(options))
            {
                var decodedEntity = new DecodedEntityClass(typeof(NormalEntity), context);

                //ATTEMPT
                var entity = new NormalEntity {
                    Id = 123
                };
                var dto = new NormalEntityKeyAbstractDto();
                entity.CopyBackKeysFromEntityToDtoIfPresent(dto, decodedEntity);

                //VERIFY
                dto.Id.ShouldEqual(0);
            }
        }