/
Scenario.cs
51 lines (44 loc) · 1.46 KB
/
Scenario.cs
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
using Given.Common;
using NUnit.Framework;
using TestState = Given.Common.TestState;
using Core = NUnit.Core;
namespace Given.NUnit
{
[TestFixture]
public abstract class Scenario
{
TestStateManager _testStateManager;
[TestFixtureSetUp]
public void Setup()
{
_testStateManager = new TestStateManager(this);
var initializer = new TestInitializer(this);
initializer.ProcessGiven(_testStateManager);
initializer.ProcessWhen(_testStateManager);
initializer.ProcessThen(_testStateManager);
_testStateManager.WriteSpecification();
}
[TearDown]
public void RecordState()
{
var context = TestContext.CurrentContext;
TestState state;
switch (context.Result.Status)
{
case TestStatus.Failed:
state = TestState.Failed;
break;
case TestStatus.Passed:
state = TestState.Passed;
break;
case TestStatus.Skipped:
state = TestState.Ignored;
break;
default:
state = TestState.Unknown;
break;
}
_testStateManager.SetThenState(context.Test.Name, state, Core.TestExecutionContext.CurrentContext.CurrentResult.Message);
}
}
}