2009-06-12 Bill Holmes <billholmes54@gmail.com>
[mono.git] / mcs / nunit20 / core / NameFilter.cs
1 using System;
2 using System.Collections;
3
4 namespace NUnit.Core
5 {
6         /// <summary>
7         /// Summary description for NameFilter.
8         /// </summary>
9         /// 
10         [Serializable]
11         public class NameFilter : Filter
12         {
13                 private ArrayList testNodes;
14
15                 public NameFilter(Test node)
16                 {
17                         testNodes = new ArrayList();
18                         testNodes.Add(node);
19                 }
20
21                 public NameFilter(ArrayList nodes) 
22                 {
23                         testNodes = nodes;
24                 }
25
26                 public override bool Pass(TestSuite suite) 
27                 {
28                         bool passed = Exclude;
29
30                         foreach (Test node in testNodes) 
31                         {
32                                 if (suite.IsDescendant(node) || node.IsDescendant(suite) || node == suite) 
33                                 {
34                                         passed = !Exclude;
35                                         break;
36                                 }
37                         }
38
39                         return passed;
40                 }
41
42                 public override bool Pass(TestCase test) 
43                 {
44                         bool passed = Exclude;
45
46                         foreach(Test node in testNodes) 
47                         {
48                                 if (test.IsDescendant(node) || test == node) 
49                                 {
50                                         passed = !Exclude;
51                                         break;
52                                 }
53                         }
54
55                         return passed;
56                 }
57         }
58 }