private void TestEvents(Func<Context, Int32> saveChangesAction) { insertingFiredCount = 0; updatingFiredCount = 0; deletingFiredCount = 0; insertedFiredCount = 0; updatedFiredCount = 0; deletedFiredCount = 0; using (var context = new Context()) { var nickStrupat = new Person { FirstName = "Nick", LastName = "Strupat", }; AddHandlers(nickStrupat); context.People.Add(nickStrupat); var johnSmith = new Person { FirstName = "John", LastName = "Smith" }; AddHandlers(johnSmith); context.People.Add(johnSmith); AssertNoEventsHaveFired(); saveChangesAction(context); AssertInsertEventsHaveFired(); nickStrupat.FirstName = "Nicholas"; saveChangesAction(context); AssertUpdateEventsHaveFired(); context.People.Remove(nickStrupat); context.People.Remove(johnSmith); saveChangesAction(context); AssertAllEventsHaveFired(); context.Database.Delete(); } }
private void TestOrder(Func<Context, Int32> saveChangesAction) { var list = new List<Int32>(); using (var context = new Context()) { var janeDoe = new Person { FirstName = "Jane", LastName = "Doe", }; janeDoe.Triggers().Inserted += e => list.Add(0); ((EntityWithInsertTracking)janeDoe).Triggers().Inserted += e => list.Add(1); ((EntityWithTracking)janeDoe).Triggers().Inserted += e => list.Add(2); context.People.Add(janeDoe); saveChangesAction(context); } Assert.IsTrue(list.SequenceEqual(new [] {0, 1, 2})); }
private void TestEvents(Func<Context, Int32> saveChangesAction) { insertingFiredCount = 0; updatingFiredCount = 0; deletingFiredCount = 0; insertFailedFiredCount = 0; updateFailedFiredCount = 0; deleteFailedFiredCount = 0; insertedFiredCount = 0; updatedFiredCount = 0; deletedFiredCount = 0; updateFailedThingValue = null; using (var context = new Context()) { var nickStrupat = new Person { FirstName = "Nick", LastName = "Strupat", }; AddHandlers(nickStrupat); nickStrupat.Triggers().Deleting += e => { e.Entity.IsMarkedDeleted = true; e.Cancel(); }; context.People.Add(nickStrupat); var johnSmith = new Person { FirstName = "John", LastName = "Smith" }; AddHandlers(johnSmith); context.People.Add(johnSmith); AssertNoEventsHaveFired(); saveChangesAction(context); Assert.IsTrue(nickStrupat.Number == 42); AssertInsertEventsHaveFired(); Assert.IsTrue(context.Things.First().Value == "Insert trigger fired for Nick"); nickStrupat.FirstName = "Nicholas"; saveChangesAction(context); AssertUpdateEventsHaveFired(); nickStrupat.LastName = null; try { context.SaveChanges(); } catch (DbEntityValidationException ex) { nickStrupat.LastName = "Strupat"; } catch (Exception ex) { Assert.Fail(ex.GetType().Name + " exception caught"); } context.SaveChanges(); Assert.AreEqual(updateFailedFiredCount, 1); Assert.IsTrue(context.Things.OrderByDescending(x => x.Id).First().Value == updateFailedThingValue); context.People.Remove(nickStrupat); context.People.Remove(johnSmith); saveChangesAction(context); AssertAllEventsHaveFired(); context.Database.Delete(); } }
public void Init() { context = new Context(Tw.GraphicsAPI.OpenGL); bar = new Bar(context); }