~a-schlapsi/nunit-3.0/linux-makefile

« back to all changes in this revision

Viewing changes to src/tests/NUnit/Core/SetUpFixtureTests.cs

  • Committer: Andreas Schlapsi
  • Date: 2010-01-23 23:14:05 UTC
  • mfrom: (18.1.137 work)
  • Revision ID: a.schlapsi@gmx.at-20100123231405-17deqoh18nfnbq1j
Merged with trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// ***********************************************************************
2
 
// Copyright (c) 2007 Charlie Poole
3
 
//
4
 
// Permission is hereby granted, free of charge, to any person obtaining
5
 
// a copy of this software and associated documentation files (the
6
 
// "Software"), to deal in the Software without restriction, including
7
 
// without limitation the rights to use, copy, modify, merge, publish,
8
 
// distribute, sublicense, and/or sell copies of the Software, and to
9
 
// permit persons to whom the Software is furnished to do so, subject to
10
 
// the following conditions:
11
 
// 
12
 
// The above copyright notice and this permission notice shall be
13
 
// included in all copies or substantial portions of the Software.
14
 
// 
15
 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
 
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
 
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
 
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
 
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
 
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
 
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
 
// ***********************************************************************
23
 
 
24
 
using System;
25
 
using NUnit.Framework;
26
 
using NUnit.TestUtilities;
27
 
 
28
 
namespace NUnit.Core.Tests
29
 
{
30
 
    [TestFixture]
31
 
    public class SetUpFixtureTests
32
 
    {
33
 
        private static readonly string testAssembly = "test-assembly.dll";
34
 
 
35
 
        #region SetUp
36
 
        [SetUp]
37
 
        public void SetUp()
38
 
        {
39
 
            TestUtilities.SimpleEventRecorder.Clear();
40
 
        }
41
 
        #endregion SetUp
42
 
 
43
 
        private TestResult runTests(string nameSpace)
44
 
        {
45
 
            return runTests(nameSpace, TestFilter.Empty);
46
 
        }
47
 
        private TestResult runTests(string nameSpace, TestFilter filter)
48
 
        {
49
 
            TestSuiteBuilder builder = new TestSuiteBuilder();
50
 
                        TestPackage package = new TestPackage( testAssembly );
51
 
                        package.TestName = nameSpace;
52
 
            Test suite = builder.Build( package );
53
 
            return suite.Run(TestListener.NULL,filter);
54
 
        }
55
 
 
56
 
        #region Builder
57
 
        /// <summary>
58
 
        /// Tests that the TestSuiteBuilder correctly interperets a SetupFixture class as a 'virtual namespace' into which 
59
 
        /// all it's sibling classes are inserted.
60
 
        /// </summary>
61
 
        [NUnit.Framework.Test]
62
 
        public void NamespaceSetUpFixtureReplacesNamespaceNodeInTree()
63
 
        {
64
 
            string nameSpace = "NUnit.TestData.SetupFixture.Namespace1";
65
 
            TestSuiteBuilder builder = new TestSuiteBuilder();
66
 
                        TestPackage package = new TestPackage( testAssembly );
67
 
                        package.TestName = nameSpace;
68
 
                        Test suite= builder.Build( package );
69
 
 
70
 
            Assert.IsNotNull(suite);
71
 
 
72
 
            Assert.AreEqual(testAssembly, suite.TestName.Name);
73
 
            Assert.AreEqual(1, suite.Tests.Count);
74
 
 
75
 
            string[] nameSpaceBits = nameSpace.Split('.');
76
 
            for (int i = 0; i < nameSpaceBits.Length; i++)
77
 
            {
78
 
                suite = suite.Tests[0] as TestSuite;
79
 
                Assert.AreEqual(nameSpaceBits[i], suite.TestName.Name);
80
 
                Assert.AreEqual(1, suite.Tests.Count);
81
 
            }
82
 
 
83
 
            Assert.IsInstanceOf(typeof(SetUpFixture), suite);
84
 
 
85
 
            suite = suite.Tests[0] as TestSuite;
86
 
            Assert.AreEqual("SomeTestFixture", suite.TestName.Name);
87
 
            Assert.AreEqual(1, suite.Tests.Count);
88
 
        }
89
 
        #endregion Builder
90
 
 
91
 
        #region NoNamespaceBuilder
92
 
        /// <summary>
93
 
        /// Tests that the TestSuiteBuilder correctly interperets a SetupFixture class with no parent namespace 
94
 
        /// as a 'virtual assembly' into which all it's sibling fixtures are inserted.
95
 
        /// </summary>
96
 
        [NUnit.Framework.Test]
97
 
        public void AssemblySetUpFixtureReplacesAssemblyNodeInTree()
98
 
        {
99
 
            TestSuiteBuilder builder = new TestSuiteBuilder();
100
 
            Test suite = builder.Build( new TestPackage( testAssembly ) );
101
 
 
102
 
            Assert.IsNotNull(suite);
103
 
            Assert.IsInstanceOf(typeof(SetUpFixture), suite);
104
 
 
105
 
            suite = suite.Tests[1] as TestSuite;
106
 
            Assert.AreEqual("SomeTestFixture", suite.TestName.Name);
107
 
            Assert.AreEqual(1, suite.TestCount);
108
 
        }
109
 
        #endregion NoNamespaceBuilder
110
 
 
111
 
 
112
 
        #region Simple
113
 
        [NUnit.Framework.Test]
114
 
        public void NamespaceSetUpFixtureWrapsExecutionOfSingleTest()
115
 
        {
116
 
            Assert.IsTrue(runTests("NUnit.TestData.SetupFixture.Namespace1").IsSuccess);
117
 
            TestUtilities.SimpleEventRecorder.Verify("NamespaceSetup",
118
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
119
 
                                  "NamespaceTearDown");
120
 
        }
121
 
        #endregion Simple
122
 
 
123
 
        #region Static
124
 
        [Test]
125
 
        public void NamespaceSetUpMethodsMayBeStatic()
126
 
        {
127
 
            Assert.IsTrue(runTests("NUnit.TestData.SetupFixture.Namespace5").IsSuccess);
128
 
            TestUtilities.SimpleEventRecorder.Verify("NamespaceSetup",
129
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
130
 
                                  "NamespaceTearDown");
131
 
        }
132
 
        #endregion
133
 
 
134
 
        #region TwoTestFixtures
135
 
        [NUnit.Framework.Test]
136
 
        public void NamespaceSetUpFixtureWrapsExecutionOfTwoTests()
137
 
        {
138
 
            Assert.IsTrue(runTests("NUnit.TestData.SetupFixture.Namespace2").IsSuccess);
139
 
            TestUtilities.SimpleEventRecorder.Verify("NamespaceSetup",
140
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
141
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
142
 
                                  "NamespaceTearDown");
143
 
        }
144
 
        #endregion TwoTestFixtures
145
 
 
146
 
        #region SubNamespace
147
 
        [NUnit.Framework.Test]
148
 
        public void NamespaceSetUpFixtureWrapsNestedNamespaceSetUpFixture()
149
 
        {
150
 
            Assert.IsTrue(runTests("NUnit.TestData.SetupFixture.Namespace3").IsSuccess);
151
 
            TestUtilities.SimpleEventRecorder.Verify("NamespaceSetup",
152
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
153
 
                                    "SubNamespaceSetup",
154
 
                                        "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
155
 
                                    "SubNamespaceTearDown",
156
 
                                  "NamespaceTearDown");
157
 
        }
158
 
        #endregion SubNamespace
159
 
 
160
 
        #region TwoSetUpFixtures
161
 
        [NUnit.Framework.Test]
162
 
        public void WithTwoSetUpFixtuesOnlyOneIsUsed()
163
 
        {
164
 
            Assert.IsTrue(runTests("NUnit.TestData.SetupFixture.Namespace4").IsSuccess);
165
 
            TestUtilities.SimpleEventRecorder.Verify("NamespaceSetup2",
166
 
                                    "FixtureSetup", "Setup", "Test", "TearDown", "FixtureTearDown",
167
 
                                  "NamespaceTearDown2");
168
 
        }
169
 
        #endregion TwoSetUpFixtures
170
 
 
171
 
        #region NoNamespaceSetupFixture
172
 
        [NUnit.Framework.Test]
173
 
        public void AssemblySetupFixtureWrapsExecutionOfTest()
174
 
        {
175
 
            TestResult result = runTests(null, new Filters.SimpleNameFilter("SomeTestFixture"));
176
 
            ResultSummary summ = new ResultSummary(result);
177
 
            Assert.AreEqual(1, summ.TestsRun);
178
 
            Assert.IsTrue(result.IsSuccess);
179
 
            TestUtilities.SimpleEventRecorder.Verify("RootNamespaceSetup",
180
 
                                    "Test",
181
 
                                  "RootNamespaceTearDown");
182
 
        }
183
 
        #endregion NoNamespaceSetupFixture
184
 
    }
185
 
}
186
 
 
187
 
 
188
 
 
189
 
 
190
 
 
191
 
 
192
 
 
193
 
 
194
 
 
195
 
 
196
 
 
197