2005-11-25 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / nunit24 / ClientUtilities / util / CategoryManager.cs
1 // ****************************************************************\r
2 // This is free software licensed under the NUnit license. You\r
3 // may obtain a copy of the license as well as information regarding\r
4 // copyright ownership at http://nunit.org/?p=license&r=2.4.\r
5 // ****************************************************************\r
6 \r
7 using System;\r
8 using System.Collections;\r
9 using NUnit.Core;\r
10 \r
11 namespace NUnit.Util\r
12 {\r
13         public class CategoryManager\r
14         {\r
15                 private Hashtable categories = new Hashtable();\r
16 \r
17                 public void Add(string name) \r
18                 {\r
19                         categories[name] = name;\r
20                 }\r
21 \r
22                 public void Add(IList list) \r
23                 {\r
24                         foreach(string name in list) \r
25                         {\r
26                                 Add(name);\r
27                         }\r
28                 }\r
29 \r
30                 public void AddCategories( ITest test )\r
31                 {\r
32                         if ( test.Categories != null )\r
33                                 Add( test.Categories );\r
34                 }\r
35 \r
36                 public void AddAllCategories( ITest test )\r
37                 {\r
38                         AddCategories( test );\r
39                         if ( test.IsSuite )\r
40                                 foreach( ITest child in test.Tests )\r
41                                         AddAllCategories( child );\r
42                 }\r
43 \r
44                 public ICollection Categories \r
45                 {\r
46                         get { return categories.Values; }\r
47                 }\r
48 \r
49                 public void Clear() \r
50                 {\r
51                         categories = new Hashtable();\r
52                 }\r
53         }\r
54 }\r