19 using System.Collections.Generic;
22 using NUnit.Framework;
34 SynchronizationContext.SetSynchronizationContext(
new SynchronizationContext());
35 Logging.LogFile.Default.EnableDebugLogging();
38 _messageContent = null;
42 public void ShowProgress()
44 bool showProgressWasSent =
false;
45 bool completed =
false;
46 _viewModel.ProcessFinishedMessage.Sent += (s, a) =>
48 Logger.Info(
"ProcessFinishedMessage was sent");
51 _viewModel.ShowProgressMessage.Sent += (sender, args) =>
53 Logger.Info(
"ShowProgressMessage was sent");
54 _messageContent = args.Content;
55 showProgressWasSent =
true;
58 Timer t =
new Timer((obj) =>
60 if (_messageContent != null && _messageContent.Processing)
62 Logger.Info(
"aborting...");
65 }, null, 5000, Timeout.Infinite);
66 _viewModel.StartProcess();
67 while (!completed && !abort) ;
71 Logger.Info(
"Cancelling...");
72 _viewModel.CancelProcess();
74 Logger.Info(
"Asserting...");
75 Assert.IsFalse(abort,
"Task was aborted");
76 Assert.IsTrue(_model.Duration > 1500,
"Process took less than 1.5 seconds - increase faculty loop?");
77 Assert.IsTrue(showProgressWasSent,
"ShowProgress message should have been sent");
78 Assert.IsTrue(_messageContent.WasSuccessful,
"WasSuccessful should be true");
79 Assert.IsNull(_messageContent.Exception,
"Exception should be null");
83 public void ProcessException()
85 bool showProgressWasSent =
false;
86 bool completed =
false;
89 _viewModel.ProcessFinishedMessage.Sent += (s, a) =>
91 Logger.Info(
"ProcessFinishedMessage was sent");
94 _viewModel.ShowProgressMessage.Sent += (sender, args) =>
96 Logger.Info(
"ShowProgressMessage was sent");
97 _messageContent = args.Content;
98 showProgressWasSent =
true;
101 Timer t =
new Timer((obj) =>
103 if (_messageContent.Processing)
105 Logger.Info(
"aborting...");
108 }, null, 5000, Timeout.Infinite);
109 _viewModel.StartProcess();
110 while (!completed && !abort) ;
114 Logger.Info(
"Cancelling...");
115 _viewModel.CancelProcess();
117 Logger.Info(
"Asserting...");
118 Assert.IsFalse(abort,
"Task was aborted");
119 Assert.IsTrue(_model.Duration > 1500,
"Process took less than 1.5 seconds - increase faculty loop?");
120 Assert.IsTrue(showProgressWasSent,
"ShowProgress message should have been sent");
121 Assert.IsFalse(_messageContent.WasSuccessful,
"WasSuccessful should be false");
126 public void CancelProcessViaViewModel()
128 bool completed =
false;
129 _viewModel.ProcessFinishedMessage.Sent += (s, a) =>
131 Logger.Info(
"ProcessFinishedMessage was sent");
134 _viewModel.ShowProgressMessage.Sent += (sender, args) =>
136 Logger.Info(
"ShowProgressMessage was sent");
137 _messageContent = args.Content;
140 Timer t =
new Timer((obj) =>
142 if (_messageContent.Processing)
144 Logger.Info(
"aborting...");
147 }, null, 5000, Timeout.Infinite);
148 Timer abortTimer =
new Timer((obj) =>
150 Logger.Info(
"Now simulating abort...");
151 _viewModel.CancelProcess();
152 }, null, 1000, Timeout.Infinite);
153 _viewModel.StartProcess();
154 while (!completed && !abort) ;
158 Logger.Info(
"Cancelling...");
159 _viewModel.CancelProcess();
161 abortTimer.Dispose();
162 Logger.Info(
"Asserting...");
163 Assert.IsFalse(abort,
"Task was aborted");
164 Assert.IsTrue(_model.Duration < 1300,
"Process took more than 1.3 seconds - was not aborted?");
165 Assert.IsTrue(_messageContent.WasCancelled,
"WasCancelled should be true");
166 Assert.IsNull(_messageContent.Exception,
"Exception should be null");
170 public void CancelProcessViaMessageContent()
172 bool completed =
false;
173 _viewModel.ProcessFinishedMessage.Sent += (s, a) =>
175 Logger.Info(
"ProcessFinishedMessage was sent");
178 _viewModel.ShowProgressMessage.Sent += (sender, args) =>
180 Logger.Info(
"ShowProgressMessage was sent");
181 _messageContent = args.Content;
184 Timer t =
new Timer((obj) =>
186 if (_messageContent != null && _messageContent.Processing)
188 Logger.Info(
"aborting...");
191 }, null, 5000, 2000);
192 Timer abortTimer =
new Timer((obj) =>
194 if (_messageContent != null)
196 Logger.Info(
"Now simulating cancellation...");
197 _messageContent.CancelCommand.Execute(null);
200 _viewModel.StartProcess();
201 while (!completed && !abort) ;
205 Logger.Info(
"Cancelling...");
206 _viewModel.CancelProcess();
208 abortTimer.Dispose();
209 Logger.Info(
"Asserting...");
210 Assert.IsFalse(abort,
"Task was aborted");
211 Assert.IsTrue(_model.Duration < 1500,
"Process took more than 1.5 seconds - was not aborted?");
212 Assert.IsTrue(_messageContent.WasCancelled,
"WasCancelled should be true");
213 Assert.IsNull(_messageContent.Exception,
"Exception should be null");
216 #region Private fields 226 private static NLog.Logger Logger {
get {
return _logger.Value; } }
228 private static readonly Lazy<
NLog.Logger> _logger =
new Lazy<
NLog.Logger>(() =>
NLog.LogManager.GetCurrentClassLogger());
Holds information about percent completion of a process and defines events that occur when the proces...