PsProcessProviderBaseMock.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using qdr.fnd.core.pqueue.Process;
  2. using Quadarax.Foundation.Core.Data;
  3. using Quadarax.Foundation.Core.Logging;
  4. namespace qdr.fnd.core.pqueue.test.Process.Mock
  5. {
  6. public class PsProcessProviderBaseMock : PsProcessProviderBase
  7. {
  8. public const string CS_ARG_EMIT_EXC = "emmit-exception";
  9. public PsProcessProviderBaseMock(Callbacks callbacks, string itemId, TypedArgument[] arguments, ILogger logger) : base(callbacks, itemId, arguments, logger)
  10. {
  11. }
  12. public new static TypedArgument[] CreateArguments()
  13. {
  14. var list = new List<TypedArgument>(PsProcessProviderBase.CreateArguments());
  15. list.Add(new TypedArgument(CS_ARG_EMIT_EXC, typeof(string), false));
  16. return list.ToArray();
  17. }
  18. protected override async Task OnProcess()
  19. {
  20. if (ContainsArgument(CS_ARG_EMIT_EXC) && !string.IsNullOrEmpty(GetArgumentValue<string>(CS_ARG_EMIT_EXC)))
  21. {
  22. var message = GetArgumentValue<string>(CS_ARG_EMIT_EXC);
  23. Log.Log(LogSeverityEnum.Info, $"Emmiting exception '{message}'");
  24. //await Task.FromException(new Exception(message));
  25. throw new Exception(message);
  26. }
  27. else
  28. {
  29. Log.Log(LogSeverityEnum.Info, $"Nothing to emitte");
  30. }
  31. await base.OnProcess();
  32. Task.Delay(3000).Wait();
  33. }
  34. public void TestOnProcessError(Exception exception)
  35. {
  36. var task = base.OnProcessError(exception);
  37. task.Wait();
  38. }
  39. public TValue? TestGetArgumentValue<TValue>(string name)
  40. {
  41. return base.GetArgumentValue<TValue>(name);
  42. }
  43. public bool TestContainsArgument(string name)
  44. {
  45. return base.ContainsArgument(name);
  46. }
  47. }
  48. }