1: using Microsoft.VisualStudio.TestTools.UnitTesting;
2:
3: namespace ExamplePresenter.Tests
4: {
5: [TestClass]
6: public class TaskTests
7: {
8: public TestContext TestContext { get; set; }
9:
10: [TestMethod]
11: public void Should_Raise_Event_During_Long_Running_Call()
12: {
13: mockPresenter process = CreateSUT();
14: process.Task.LongRunningProcess();
15:
16: Assert.IsTrue(process.ProgressEventRaised);
17: Assert.AreEqual("hello world", process.MessageReceived);
18: Assert.AreEqual(1, process.MessageFlag);
19: }
20:
21: private static mockPresenter CreateSUT()
22: {
23: var task = new Task();
24: var presenter = new mockPresenter(task);
25:
26: return presenter;
27: }
28: }
29:
30: public class mockPresenter
31: {
32: private readonly ITask _task;
33:
34: public mockPresenter(ITask task)
35: {
36: _task = task;
37:
38: _task.ProgressMessage += ProgressTaskMessage;
39: }
40:
41: public ITask Task
42: {
43: get { return _task; }
44: }
45:
46: public int MessageFlag { get; set; }
47:
48: public string MessageReceived { get; set; }
49:
50: public bool ProgressEventRaised { get; set; }
51:
52: private void ProgressTaskMessage(object sender, MessageEventArgs args)
53: {
54: MessageReceived = args.Message;
55: MessageFlag = args.MessageFlag;
56: ProgressEventRaised = true;
57: }
58: }
59: }