From: Michael D. <mik...@us...> - 2004-08-17 14:48:29
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/NHSpecificTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29041 Modified Files: NodeFixture.cs Log Message: Added test for updating the links between Nodes. Index: NodeFixture.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/NHSpecificTest/NodeFixture.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NodeFixture.cs 1 Aug 2004 22:13:03 -0000 1.2 --- NodeFixture.cs 17 Aug 2004 14:14:02 -0000 1.3 *************** *** 89,94 **** --- 89,139 ---- s2.Close(); + s = sessions.OpenSession(); + t = s.BeginTransaction(); + + levelThreeNode = (Node)s.Load( typeof(Node), "3" ); + endNode = (Node)s.Load( typeof(Node), "end" ); + + Node levelFourOneNode = new Node("4-1"); + Node levelFourTwoNode = new Node("4-2"); + + levelThreeNode.RemoveDestinationNode(endNode); + levelThreeNode.AddDestinationNode(levelFourOneNode); + levelThreeNode.AddDestinationNode(levelFourTwoNode); + + levelFourOneNode.AddDestinationNode(endNode); + levelFourTwoNode.AddDestinationNode(endNode); + + s.Save(levelFourOneNode); + s.Save(levelFourTwoNode); + + t.Commit(); + s.Close(); + + s = sessions.OpenSession(); + t = s.BeginTransaction(); + + levelThreeNode = (Node)s.Load( typeof(Node), "3" ); + endNode = (Node)s.Load( typeof(Node), "end" ); + + Assert.AreEqual( 2, levelThreeNode.DestinationNodes.Keys.Count, "should be attached to the 2 level 4 nodes" ); + foreach( Node node in levelThreeNode.DestinationNodes.Keys ) + { + Assert.IsFalse( node.Equals(endNode), "one of the Dest Nodes in levelThreeNode should not be the end node"); + } + + Assert.AreEqual( 2, endNode.PreviousNodes.Keys.Count, "end node should have two nodes leading into it" ); + + foreach( Node node in endNode.PreviousNodes.Keys ) + { + Assert.IsFalse( node.Equals(levelThreeNode) , "one of the Prev Nodes in should not be the level 3 node, only level 4 nodes" ); + } + + t.Commit(); + s.Close(); + } + } } |