public void HookedDbContext_MustNotCallHooks_WhenGetValidationErrorsIsCalled() { var hooks = new IHook[] { new TimestampPreInsertHook() }; var context = new LocalContext(hooks); var entity = new TimestampedSoftDeletedEntity(); context.Entities.Add(entity); context.GetValidationErrors(); Assert.AreNotEqual(entity.CreatedAt.Date, DateTime.Today); }
public void HookedDbContext_ShouldHook_IfValidateBeforeSaveIsDisabled_AndChangedObjectsAreInvalid() { var context = new LocalContext(); context.Configuration.ValidateOnSaveEnabled = false; context.RegisterHook(new TimestampPreInsertHook()); var tsEntity = new TimestampedSoftDeletedEntity(); var valEntity = new ValidatedEntity(); context.Entities.Add(tsEntity); context.ValidatedEntities.Add(valEntity); Assert.IsTrue(context.GetValidationErrors().Any(x => !x.IsValid)); Assert.Throws <DbUpdateException>(() => context.SaveChanges()); Assert.AreEqual(tsEntity.CreatedAt.Date, DateTime.Today); Assert.AreEqual(valEntity.CreatedAt.Date, DateTime.Today); }