|
|
@@ -188,6 +188,26 @@ namespace qdr.fnd.core.pqueue.test.Process
|
|
|
Assert.That(_statusDonePool[process.ItemId].Any(x => x.Item1 == PsStatusEnum.DoneFailed), Is.True);
|
|
|
}
|
|
|
|
|
|
+ [Test(TestOf=typeof(PsProcessProviderBase))]
|
|
|
+ public void ProcessFailedInsideOk()
|
|
|
+ {
|
|
|
+ var inProcessMessage = "Foo wants to live";
|
|
|
+ var args = PsProcessProviderBaseMock.CreateArguments().ToArray();
|
|
|
+ args.SetArgumentValue<TimeSpan>(PsProcessProviderBase.CS_ARG_PROCESS_TIMEOUT, TimeSpan.FromSeconds(500));
|
|
|
+ args.SetArgumentValue<string>(PsProcessProviderBaseMock.CS_ARG_EMIT_EXC, inProcessMessage);
|
|
|
+
|
|
|
+
|
|
|
+ var process = CreateProcess(args);
|
|
|
+ var dtStart = DateTime.Now;
|
|
|
+ process.Start();
|
|
|
+ process.WaitToDone();
|
|
|
+ TestContext.WriteLine($"#Process duration check: {(DateTime.Now - dtStart).ToReadableString()}");
|
|
|
+
|
|
|
+ Assert.That(process.IsRunning, Is.False);
|
|
|
+ Assert.That(_statusDonePool.ContainsKey(process.ItemId), Is.True);
|
|
|
+ Assert.That(_statusDonePool[process.ItemId].Any(x => x.Item1 == PsStatusEnum.DoneFailed && x.Item2.Contains(inProcessMessage)), Is.True);
|
|
|
+ }
|
|
|
+
|
|
|
private PsProcessProviderBaseMock CreateProcess(TypedArgument[] args)
|
|
|
{
|
|
|
var itemId = "a";
|