~simone.busoli/nunitv2/async-support-void-and-task-return-types

« back to all changes in this revision

Viewing changes to src/NUnitCore/tests/TestExecutionContextTests.cs

  • Committer: Charlie Poole
  • Date: 2012-09-25 16:39:42 UTC
  • Revision ID: charlie@nunit.org-20120925163942-eget0lxgu6hdht10
Make test result and test info avaiable to TestFixtureSetUp and TestFixtureTearDown methods

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
        /// <summary>
16
16
    /// Summary description for TestExecutionContextTests.
17
17
        /// </summary>
18
 
        [TestFixture]
 
18
        [TestFixture][Property("Question", "Why?")]
19
19
    public class TestExecutionContextTests
20
20
        {
 
21
        TestExecutionContext fixtureContext;
 
22
        TestExecutionContext setupContext;
 
23
 
21
24
                string currentDirectory;
22
25
                CultureInfo currentCulture;
23
26
        CultureInfo currentUICulture;
24
27
        IPrincipal currentPrincipal;
25
28
 
26
 
                /// <summary>
 
29
        [TestFixtureSetUp]
 
30
        public void OneTimeSetUp()
 
31
        {
 
32
            fixtureContext = TestExecutionContext.CurrentContext;
 
33
        }
 
34
 
 
35
        [TestFixtureTearDown]
 
36
        public void OneTimeTearDown()
 
37
        {
 
38
            // TODO: We put some tests in one time teardown to verify that
 
39
            // the context is still valid. It would be better if these tests
 
40
            // were placed in a second-level test, invoked from this test class.
 
41
            TestExecutionContext ec = TestExecutionContext.CurrentContext;
 
42
            Assert.That(ec.CurrentTest.TestName.Name, Is.EqualTo("TestExecutionContextTests"));
 
43
            Assert.That(ec.CurrentTest.TestName.FullName,
 
44
                Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests"));
 
45
            Assert.That(ec.CurrentTest.Properties["Question"], Is.EqualTo("Why?"));
 
46
        }
 
47
 
 
48
        /// <summary>
27
49
                /// Since we are testing the mechanism that saves and
28
50
                /// restores contexts, we save manually here
29
51
                /// </summary>
30
52
                [SetUp]
31
53
                public void SaveContext()
32
54
                {
 
55
            setupContext = TestExecutionContext.CurrentContext;
 
56
 
33
57
                        currentDirectory = Environment.CurrentDirectory;
34
58
                        currentCulture = CultureInfo.CurrentCulture;
35
59
            currentUICulture = CultureInfo.CurrentUICulture;
43
67
                        Thread.CurrentThread.CurrentCulture = currentCulture;
44
68
            Thread.CurrentThread.CurrentUICulture = currentUICulture;
45
69
            Thread.CurrentPrincipal = currentPrincipal;
46
 
                }
47
 
 
48
 
                [Test]
 
70
 
 
71
            Assert.That(
 
72
                TestExecutionContext.CurrentContext.CurrentTest.TestName.FullName,
 
73
                Is.EqualTo(setupContext.CurrentTest.TestName.FullName),
 
74
                "Context at TearDown failed to match that saved from SetUp");
 
75
        }
 
76
 
 
77
        [Test]
 
78
        public void FixtureSetUpCanAccessFixtureName()
 
79
        {
 
80
            Assert.That(fixtureContext.CurrentTest.TestName.Name, Is.EqualTo("TestExecutionContextTests"));
 
81
        }
 
82
 
 
83
        [Test]
 
84
        public void FixtureSetUpCanAccessFixtureFullName()
 
85
        {
 
86
            Assert.That(fixtureContext.CurrentTest.TestName.FullName,
 
87
                Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests"));
 
88
        }
 
89
 
 
90
        [Test]
 
91
        public void FixtureSetUpCanAccessFixtureProperties()
 
92
        {
 
93
            Assert.That(fixtureContext.CurrentTest.Properties["Question"], Is.EqualTo("Why?"));
 
94
        }
 
95
 
 
96
        [Test]
 
97
        public void SetUpCanAccessTestName()
 
98
        {
 
99
            Assert.That(setupContext.CurrentTest.TestName.Name, Is.EqualTo("SetUpCanAccessTestName"));
 
100
        }
 
101
 
 
102
        [Test]
 
103
        public void SetUpCanAccessTestFullName()
 
104
        {
 
105
            Assert.That(setupContext.CurrentTest.TestName.FullName,
 
106
                Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests.SetUpCanAccessTestFullName"));
 
107
        }
 
108
 
 
109
        [Test]
 
110
        [Property("Answer", 42)]
 
111
        public void SetUpCanAccessTestProperties()
 
112
        {
 
113
            Assert.That(setupContext.CurrentTest.Properties["Answer"], Is.EqualTo(42));
 
114
        }
 
115
 
 
116
        [Test]
 
117
        public void TestCanAccessItsOwnName()
 
118
        {
 
119
            Assert.That(TestExecutionContext.CurrentContext.CurrentTest.TestName.Name, Is.EqualTo("TestCanAccessItsOwnName"));
 
120
        }
 
121
 
 
122
        [Test]
 
123
        public void TestCanAccessItsOwnFullName()
 
124
        {
 
125
            Assert.That(TestExecutionContext.CurrentContext.CurrentTest.TestName.FullName,
 
126
                Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests.TestCanAccessItsOwnFullName"));
 
127
        }
 
128
 
 
129
        [Test]
 
130
        [Property("Answer", 42)]
 
131
        public void TestCanAccessItsOwnProperties()
 
132
        {
 
133
            Assert.That(TestExecutionContext.CurrentContext.CurrentTest.Properties["Answer"], Is.EqualTo(42));
 
134
        }
 
135
 
 
136
        [Test]
49
137
                public void SetAndRestoreCurrentDirectory()
50
138
                {
51
139
            Assert.AreEqual(currentDirectory, TestExecutionContext.CurrentContext.CurrentDirectory, "Directory not in initial context");