C# Client Library
A C# Client Library for the AnalyzeRe REST API
Loading...
Searching...
No Matches
BaseTestSuite.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Diagnostics;
4using System.Linq;
5
7#if MSTEST
8using Microsoft.VisualStudio.TestTools.UnitTesting;
9#elif NUNIT
10using TestClass = NUnit.Framework.TestFixtureAttribute;
11using TestInitialize = NUnit.Framework.SetUpAttribute;
12using TestCleanup = NUnit.Framework.TearDownAttribute;
13#endif
14
16{
17 [TestClass]
18 public abstract class BaseTestSuite
19 {
20 public TestContext TestContext { get; set; }
21
22 private readonly List<Action> _testInitializeActions = new List<Action>();
23 private readonly List<Action> _testCleanupActions = new List<Action>();
24
25 private static readonly string _lineBreak = '\n' + new string('-', 80);
26 private static string _contextName;
27 private readonly string _typeName;
28
29 protected BaseTestSuite()
30 {
31 _typeName = GetType().NiceTypeName();
32 }
33
34 [TestInitialize]
35 public void BaseTest_Initialize()
36 {
37 DateTime start = DateTime.UtcNow;
38 Debug.WriteLine($"Initializing {_typeName} Test");
39 foreach (Action a in _testInitializeActions)
40 a.Invoke();
41 Debug.WriteLine($"Done Initializing {_typeName} Test " +
42 $"({(DateTime.UtcNow - start).TotalSeconds} seconds){_lineBreak}");
43 }
44
45 [TestCleanup]
46 public void BaseTest_Cleanup()
47 {
48 DateTime start = DateTime.UtcNow;
49 Debug.WriteLine($"{'\n'}{_lineBreak}\nCleaning Up {_typeName} Test");
50 foreach (Action a in _testCleanupActions.Reverse<Action>())
51 a.Invoke();
52 Debug.WriteLine($"Done Cleaning Up {_typeName} Test " +
53 $"({(DateTime.UtcNow - start).TotalSeconds} seconds)");
54 }
55
56 protected static void BaseClass_Initialize(TestContext context, Action action)
57 {
58 DateTime start = DateTime.UtcNow;
59 _contextName = context.TestName;
60 Debug.WriteLine($"Initializing {_contextName} Class");
61 action.Invoke();
62 Debug.WriteLine($"Done Initializing {_contextName} Class " +
63 $"({(DateTime.UtcNow - start).TotalSeconds} seconds){_lineBreak}");
64 }
65
66 protected static void BaseClass_Cleanup(Action action)
67 {
68 DateTime start = DateTime.UtcNow;
69 Debug.WriteLine($"{'\n'}{_lineBreak}\nCleaning Up {_contextName} Class");
70 action.Invoke();
71 Debug.WriteLine($"Done Cleaning Up {_contextName} Class " +
72 $"({(DateTime.UtcNow - start).TotalSeconds} seconds)");
73 }
74
75 protected void AddCommonTestInitializeAction(Action action)
76 {
77 _testInitializeActions.Add(action);
78 }
79
80 protected void AddCommonTestCleanupAction(Action action)
81 {
82 _testCleanupActions.Add(action);
83 }
84 }
85}
void AddCommonTestCleanupAction(Action action)
static void BaseClass_Initialize(TestContext context, Action action)
void AddCommonTestInitializeAction(Action action)
static void BaseClass_Cleanup(Action action)