public void SuspendsCallbacksWithScopes()
{
var model = new SuspendableTestModel();
using (model.SuspendChangeCallbacks())
{
using (model.SuspendChangeCallbacks())
{
model.FirstName = "A";
model.LastName = "B";
Assert.IsFalse(model.IsFirstNameCallbackInvoked);
Assert.IsFalse(model.IsLastNameCallbackInvoked);
}
model.FirstName = "A1";
model.LastName = "B1";
Assert.IsFalse(model.IsFirstNameCallbackInvoked);
Assert.IsFalse(model.IsLastNameCallbackInvoked);
}
model.FirstName = "A2";
model.LastName = "B2";
Assert.IsTrue(model.IsFirstNameCallbackInvoked);
Assert.IsTrue(model.IsLastNameCallbackInvoked);
}
}