public void VerifyUndoableStateStackOnClone() { Csla.ApplicationContext.GlobalContext.Clear(); using (UnitTestContext context = GetContext()) { HasRulesManager2.NewHasRulesManager2((o, e) => { context.Assert.IsNull(e.Error); HasRulesManager2 root = e.Object; string expected = root.Name; root.BeginEdit(); root.Name = ""; HasRulesManager2 rootClone = root.Clone(); rootClone.CancelEdit(); string actual = rootClone.Name; context.Assert.AreEqual(expected, actual); context.Assert.Try(rootClone.ApplyEdit); context.Assert.Success(); }); context.Complete(); } }
public void TestValidationRulesAfterClone() { //this test uses HasRulesManager2, which assigns criteria._name to its public //property in DataPortal_Create. If it used HasRulesManager, it would fail //the first assert, but pass the others Csla.ApplicationContext.GlobalContext.Clear(); UnitTestContext context = GetContext(); HasRulesManager2.NewHasRulesManager2((o, e) => { context.Assert.Try(() => { HasRulesManager2 root = e.Object; context.Assert.AreEqual(true, root.IsValid); root.BeginEdit(); root.Name = ""; root.ApplyEdit(); context.Assert.AreEqual(false, root.IsValid); HasRulesManager2 rootClone = root.Clone(); context.Assert.AreEqual(false, rootClone.IsValid); rootClone.Name = "something"; context.Assert.AreEqual(true, rootClone.IsValid); context.Assert.Success(); }); }); context.Complete(); }