1 #region Copyright (c) 2002-2003, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole, Philip A. Craig
2 /************************************************************************************
4 ' Copyright 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
5 ' Copyright 2000-2002 Philip A. Craig
7 ' This software is provided 'as-is', without any express or implied warranty. In no
8 ' event will the authors be held liable for any damages arising from the use of this
11 ' Permission is granted to anyone to use this software for any purpose, including
12 ' commercial applications, and to alter it and redistribute it freely, subject to the
13 ' following restrictions:
15 ' 1. The origin of this software must not be misrepresented; you must not claim that
16 ' you wrote the original software. If you use this software in a product, an
17 ' acknowledgment (see the following) in the product documentation is required.
19 ' Portions Copyright 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
20 ' or Copyright 2000-2002 Philip A. Craig
22 ' 2. Altered source versions must be plainly marked as such, and must not be
23 ' misrepresented as being the original software.
25 ' 3. This notice may not be removed or altered from any source distribution.
27 '***********************************************************************************/
36 /// Summary description for UIHelper.
40 private static bool AreNodesTheSame(Test testOne
, Test testTwo
)
42 if(testOne
==null && testTwo
!=null) return false;
43 if(testTwo
==null && testOne
!=null) return false;
44 if(testOne
.GetType().FullName
!= testTwo
.GetType().FullName
) return false;
45 if(testOne
.ShouldRun ^ testTwo
.ShouldRun
) return false;
46 return testOne
.FullName
.Equals(testTwo
.FullName
);
49 public static bool CompareTree(Test rootTestOriginal
, Test rootTestNew
)
51 if(!AreNodesTheSame(rootTestOriginal
,rootTestNew
)) return false;
52 if((rootTestOriginal
is TestSuite
) && (rootTestNew
is TestSuite
))
54 TestSuite originalSuite
= (TestSuite
)rootTestOriginal
;
55 TestSuite newSuite
= (TestSuite
)rootTestNew
;
56 int originalCount
= originalSuite
.Tests
.Count
;
57 int newCount
= newSuite
.Tests
.Count
;
58 if(originalCount
!=newCount
)
62 for(int i
=0; i
<originalSuite
.Tests
.Count
;i
++)
64 if(!CompareTree((Test
)originalSuite
.Tests
[i
],(Test
)newSuite
.Tests
[i
])) return false;
70 private static bool AreNodesTheSame( UITestNode testOne
, UITestNode testTwo
)
72 if( testOne
== null && testTwo
!= null ) return false;
73 if( testTwo
== null && testOne
!= null ) return false;
74 if( testOne
.IsSuite
!= testTwo
.IsSuite
) return false;
75 if( testOne
.ShouldRun
!= testTwo
.ShouldRun
) return false;
77 return testOne
.FullName
.Equals(testTwo
.FullName
);
80 public static bool CompareTree( UITestNode rootTestOriginal
, UITestNode rootTestNew
)
82 if( !AreNodesTheSame( rootTestOriginal
, rootTestNew
) )
85 if( rootTestOriginal
.IsSuite
&& rootTestNew
.IsSuite
)
87 if( rootTestOriginal
.Tests
.Count
!= rootTestNew
.Tests
.Count
)
90 for(int i
=0; i
< rootTestOriginal
.Tests
.Count
; i
++)
91 if( !CompareTree( (UITestNode
)rootTestOriginal
.Tests
[i
], (UITestNode
)rootTestNew
.Tests
[i
] ) )