16
16
/// Summary description for TestExecutionContextTests.
18
[TestFixture][Property("Question", "Why?")]
19
19
public class TestExecutionContextTests
21
TestExecutionContext fixtureContext;
22
TestExecutionContext setupContext;
21
24
string currentDirectory;
22
25
CultureInfo currentCulture;
23
26
CultureInfo currentUICulture;
24
27
IPrincipal currentPrincipal;
30
public void OneTimeSetUp()
32
fixtureContext = TestExecutionContext.CurrentContext;
36
public void OneTimeTearDown()
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?"));
27
49
/// Since we are testing the mechanism that saves and
28
50
/// restores contexts, we save manually here
31
53
public void SaveContext()
55
setupContext = TestExecutionContext.CurrentContext;
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;
72
TestExecutionContext.CurrentContext.CurrentTest.TestName.FullName,
73
Is.EqualTo(setupContext.CurrentTest.TestName.FullName),
74
"Context at TearDown failed to match that saved from SetUp");
78
public void FixtureSetUpCanAccessFixtureName()
80
Assert.That(fixtureContext.CurrentTest.TestName.Name, Is.EqualTo("TestExecutionContextTests"));
84
public void FixtureSetUpCanAccessFixtureFullName()
86
Assert.That(fixtureContext.CurrentTest.TestName.FullName,
87
Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests"));
91
public void FixtureSetUpCanAccessFixtureProperties()
93
Assert.That(fixtureContext.CurrentTest.Properties["Question"], Is.EqualTo("Why?"));
97
public void SetUpCanAccessTestName()
99
Assert.That(setupContext.CurrentTest.TestName.Name, Is.EqualTo("SetUpCanAccessTestName"));
103
public void SetUpCanAccessTestFullName()
105
Assert.That(setupContext.CurrentTest.TestName.FullName,
106
Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests.SetUpCanAccessTestFullName"));
110
[Property("Answer", 42)]
111
public void SetUpCanAccessTestProperties()
113
Assert.That(setupContext.CurrentTest.Properties["Answer"], Is.EqualTo(42));
117
public void TestCanAccessItsOwnName()
119
Assert.That(TestExecutionContext.CurrentContext.CurrentTest.TestName.Name, Is.EqualTo("TestCanAccessItsOwnName"));
123
public void TestCanAccessItsOwnFullName()
125
Assert.That(TestExecutionContext.CurrentContext.CurrentTest.TestName.FullName,
126
Is.EqualTo("NUnit.Core.Tests.TestExecutionContextTests.TestCanAccessItsOwnFullName"));
130
[Property("Answer", 42)]
131
public void TestCanAccessItsOwnProperties()
133
Assert.That(TestExecutionContext.CurrentContext.CurrentTest.Properties["Answer"], Is.EqualTo(42));
49
137
public void SetAndRestoreCurrentDirectory()
51
139
Assert.AreEqual(currentDirectory, TestExecutionContext.CurrentContext.CurrentDirectory, "Directory not in initial context");