public void HistoryEntryMustBeCreated() { var testTreeParent = new TestTreeClass(); var testTreeChild = new TestTreeClass(); testTreeParent.AddChild(testTreeChild); using (ITransaction tx = Session.BeginTransaction()) { Session.Save(testTreeParent); tx.Commit(); } Session.Clear(); TestTreeClass child; TestTreeClass parent; using (ITransaction tx = Session.BeginTransaction()) { child = Session.Get <TestTreeClass>(testTreeChild.Id); parent = Session.Get <TestTreeClass>(testTreeParent.Id); tx.Rollback(); } Assert.NotSame(testTreeParent, parent); Assert.NotSame(testTreeChild, child); Assert.Equal(1, parent.Children.Count()); Assert.Equal(child, parent.Children.First()); Assert.NotEmpty(parent.Descendants.ToList()); Assert.NotEmpty(child.Ancestors.ToList()); }
public void ClearDescendantsAndAncestorsThenClearParrent() { var testTreeParent = new TestTreeClass(); var testTreeChild = new TestTreeClass(); testTreeParent.AddChild(testTreeChild); using (ITransaction tx = Session.BeginTransaction()) { Session.Save(testTreeParent); tx.Commit(); } Session.Flush(); Session.Clear(); Console.WriteLine("BEFORE CLEAR PARENT"); using (ITransaction tx = Session.BeginTransaction()) { Session.Get <TestTreeClass>(testTreeChild.Id).ClearParent(); tx.Commit(); } Session.Flush(); Session.Clear(); Console.WriteLine("AFTER CLEAR PARENT"); TestTreeClass child; TestTreeClass parent; using (ITransaction tx = Session.BeginTransaction()) { child = Session.Get <TestTreeClass>(testTreeChild.Id); parent = Session.Get <TestTreeClass>(testTreeParent.Id); tx.Rollback(); } Assert.Equal(0, parent.Children.Count()); Assert.Equal(0, parent.Descendants.Count()); Assert.Null(child.Parent); Assert.Equal(0, parent.Ancestors.Count()); }