-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaseClassEventsTests.cs
68 lines (58 loc) · 2.18 KB
/
BaseClassEventsTests.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Tests.Events;
using System.Diagnostics.Tracing;
using System.Reflection;
using Microsoft.Practices.EnterpriseLibrary.SemanticLogging;
using Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Utility;
namespace Tests
{
public abstract class EventSourceBase : EventSource
{
private readonly ObservableEventListener m_listener;
public MemoryRetentionSink Sink { get; private set; }
public void DisposeListener()
{
m_listener.Dispose();
}
protected EventSourceBase()
{
m_listener = new ObservableEventListener();
m_listener.EnableEvents(this, EventLevel.Verbose);
Sink = m_listener.RetainEventRecords().Sink;
}
}
[TestClass]
public class BaseClassEventsTests
{
private static BaseClassEvents s_baseClassEvents;
[ClassInitialize]
public static void BeforeAll(TestContext context)
{
s_baseClassEvents = new BaseClassEvents();
}
[TestCleanup]
public void AfterEach()
{
BaseClassEventSource.Log.Sink.Clear();
}
[ClassCleanup]
public static void AfterAll()
{
BaseClassEventSource.Log.DisposeListener();
}
[TestMethod]
public void AnalyzeEventSource()
{
EventSourceAnalyzer.InspectAll(BaseClassEventSource.Log);
}
[TestMethod]
public void TestBaseEventSource()
{
Assert.IsInstanceOfType(BaseClassEventSource.Log, typeof(EventSourceBase), "Event source class doesn't inherit from the expected base class");
Assert.AreEqual("OS-Test-BaseClass", typeof(BaseClassEventSource).GetCustomAttribute<EventSourceAttribute>().Name, "Mismatched event source name");
AssertHelper.AssertEventAttributes<BaseClassEventSource>("Foo", 10, 0, EventChannel.None, EventLevel.Informational, "Foo: {0}", EventKeywords.None, EventTask.None, null);
s_baseClassEvents.Foo("bar");
BaseClassEventSource.Log.Sink.AssertEventRecord(10, "Foo: bar", new object[] { "bar" });
}
}
}