コード例 #1
0
ファイル: TreeNodeCollectionTest.cs プロジェクト: nobled/mono
		public void TreeNodeCollection_ViewState () {
			PokerTreeView orig = new PokerTreeView ();
			orig.DoTrackViewState ();
			BuildTree (orig);

			PokerTreeView copy = new PokerTreeView ();
			copy.DoTrackViewState ();
			object state = orig.DoSaveViewState ();
			copy.DoLoadViewState (state);

			// restored collection that was created after TrackViewState
			Assert.AreEqual (1, copy.Nodes.Count, "TreeNodeCollection_ViewState#1");
			Assert.AreEqual (2, copy.Nodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#2");
			Assert.AreEqual (0, copy.Nodes [0].ChildNodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#3");
			Assert.AreEqual ("node1", copy.Nodes [0].ChildNodes [0].Text, "TreeNodeCollection_ViewState#4");
			Assert.AreEqual ("value-node1", copy.Nodes [0].ChildNodes [0].Value, "TreeNodeCollection_ViewState#5");
			Assert.AreEqual (false, copy.Nodes [0].ChildNodes [0].DataBound, "TreeNodeCollection_ViewState#6");
			Assert.AreEqual ("", copy.Nodes [0].ChildNodes [0].DataPath, "TreeNodeCollection_ViewState#7");


			PokerTreeView orig2 = new PokerTreeView ();
			BuildTree (orig2);
			orig2.DoTrackViewState ();

			orig2.Nodes [0].ChildNodes [0].Text = "changed text 1";
			orig2.Nodes [0].ChildNodes [0].Value = "changed value 1";

			PokerTreeView copy2 = new PokerTreeView ();
			BuildTree (copy2);
			copy2.DoTrackViewState ();
			object state2 = orig2.DoSaveViewState ();
			copy2.DoLoadViewState (state2);

			// restored collection that was changed (item's properties only) after TrackViewState
			Assert.AreEqual (1, copy2.Nodes.Count, "TreeNodeCollection_ViewState#8");
			Assert.AreEqual (2, copy2.Nodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#9");
			Assert.AreEqual (0, copy2.Nodes [0].ChildNodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#10");
			Assert.AreEqual ("changed text 1", copy2.Nodes [0].ChildNodes [0].Text, "TreeNodeCollection_ViewState#11");
			Assert.AreEqual ("changed value 1", copy2.Nodes [0].ChildNodes [0].Value, "TreeNodeCollection_ViewState#12");
			Assert.AreEqual (false, copy2.Nodes [0].ChildNodes [0].DataBound, "TreeNodeCollection_ViewState#13");
			Assert.AreEqual ("", copy2.Nodes [0].ChildNodes [0].DataPath, "TreeNodeCollection_ViewState#14");


			PokerTreeView orig3 = new PokerTreeView ();
			BuildTree (orig3);
			orig3.DoTrackViewState ();

			orig3.Nodes [0].ChildNodes [0].Text = "changed text 1";
			orig3.Nodes [0].ChildNodes [0].Value = "changed value 1";
			orig3.Nodes [0].ChildNodes.RemoveAt (1);

			PokerTreeView copy3 = new PokerTreeView ();
			BuildTree (copy3);
			copy3.DoTrackViewState ();
			object state3 = orig3.DoSaveViewState ();
			copy3.DoLoadViewState (state3);

			// restored collection that was changed after TrackViewState
			Assert.AreEqual (1, copy3.Nodes.Count, "TreeNodeCollection_ViewState#15");
			Assert.AreEqual (1, copy3.Nodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#16");
			Assert.AreEqual (0, copy3.Nodes [0].ChildNodes [0].ChildNodes.Count, "TreeNodeCollection_ViewState#17");
			Assert.AreEqual ("changed text 1", copy3.Nodes [0].ChildNodes [0].Text, "TreeNodeCollection_ViewState#18");
			Assert.AreEqual ("changed value 1", copy3.Nodes [0].ChildNodes [0].Value, "TreeNodeCollection_ViewState#19");
			Assert.AreEqual (false, copy3.Nodes [0].ChildNodes [0].DataBound, "TreeNodeCollection_ViewState#20");
			Assert.AreEqual ("", copy3.Nodes [0].ChildNodes [0].DataPath, "TreeNodeCollection_ViewState#21");
		}