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); } }
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); } }
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); } }