File: NameFilterTest.cs

package info (click to toggle)
nunit2.2 2.2.0-3.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,164 kB
  • ctags: 4,237
  • sloc: cs: 25,295; sh: 80; xml: 76; cpp: 70; makefile: 56; ansic: 7
file content (96 lines) | stat: -rw-r--r-- 3,178 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
using System;
using System.Collections;
using NUnit.Framework;
using NUnit.Tests.Assemblies;
using NUnit.Core;

namespace NUnit.Tests.Core
{
	[TestFixture]
	public class NameFilterTest
	{
		private MockTestFixture mockTestFixture;
		private TestSuite testSuite;
		private NUnit.Core.TestCase mock3;

		[SetUp]
		public void SetUp() 
		{
			mockTestFixture = new MockTestFixture();
			testSuite = new TestSuite("Mock Test Suite");
			testSuite.Add(mockTestFixture);
			mock3 = (NUnit.Core.TestCase) findTest("MockTest3", testSuite);
		}

		[Test]
		public void SingleNameMatch() 
		{
			string uniqueName = "[0]NUnit.Tests.Assemblies.MockTestFixture.MockTest3";
			Assert.AreEqual(uniqueName, mock3.UniqueName);
			NameFilter filter = new NameFilter(mock3);
			Assert.IsTrue(filter.Pass(mock3), "Name Filter did not pass test case");
			Assert.AreEqual("[0]NUnit.Tests.Assemblies.MockTestFixture", ((TestSuite)testSuite.Tests[0]).UniqueName);
			Assert.IsTrue(filter.Pass((TestSuite)testSuite.Tests[0]), "Name Filter did not pass test suite");
		}

		[Test]
		public void MultipleNameMatch() 
		{
			NUnit.Core.TestCase mock1 = (NUnit.Core.TestCase) findTest("MockTest1", testSuite);
			ArrayList testList = new ArrayList();
			testList.Add(mock3);
			testList.Add(mock1);
			NameFilter filter = new NameFilter(testList);
			Assert.IsTrue(filter.Pass(mock3), "Name Filter did not pass test case");
			Assert.IsTrue(filter.Pass(mock1), "Name Filter did not pass test case");
			Assert.IsTrue(filter.Pass((TestSuite)testSuite.Tests[0]), "Name Filter did not pass test suite");
		}

		[Test]
		public void SuiteNameMatch() 
		{
			NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) findTest("MockTestFixture", testSuite);
			NameFilter filter = new NameFilter(mockTest);
			Assert.IsTrue(filter.Pass(mock3), "Name Filter did not pass test case");
			Assert.IsTrue(filter.Pass(mockTest), "Suite did not pass test case");
			Assert.IsTrue(filter.Pass(testSuite), "Suite did not pass test case");
		}

		[Test]
		public void TestDoesNotMatch() 
		{
			NUnit.Core.TestCase mock1 = (NUnit.Core.TestCase) findTest("MockTest1", testSuite);
			NameFilter filter = new NameFilter(mock1);
			Assert.IsFalse(filter.Pass(mock3), "Name Filter did pass test case");
			Assert.IsTrue(filter.Pass(testSuite), "Name Filter did not pass test suite");
		}

		[Test]
		public void HighLevelSuite() 
		{
			NUnit.Core.TestSuite mockTest = (NUnit.Core.TestSuite) findTest("MockTestFixture", testSuite);
			NameFilter filter = new NameFilter(testSuite);
			Assert.IsTrue(filter.Pass(mock3), "Name Filter did not pass test case");
			Assert.IsTrue(filter.Pass(mockTest), "Name Filter did not pass middle suite");
			Assert.IsTrue(filter.Pass(testSuite), "Name Filter did not pass test suite");
		}

		private Test findTest(string name, Test test) 
		{
			Test result = null;
			if (test.Name == name)
				result = test;
			else if (test.Tests != null)
			{
				foreach(Test t in test.Tests) 
				{
					result = findTest(name, t);
					if (result != null)
						break;
				}
			}

			return result;
		}
	}
}