From bf94fe8cb1a9609ed2f53283d15d4e033a030c3d Mon Sep 17 00:00:00 2001 From: Lillie Dae <61380713+lillie-dae@users.noreply.github.com> Date: Fri, 8 Sep 2023 16:50:28 +0100 Subject: [PATCH] minor fixes (#873) * minor fixes Signed-off-by: Lillie Dae --------- Signed-off-by: Lillie Dae --- src/Common/Miscellaneous/ApiControllerBase.cs | 4 +- src/TaskManager/Plug-ins/Argo/ArgoClient.cs | 76 ++++++++++--------- src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs | 1 + src/TaskManager/Plug-ins/Argo/ArgoProvider.cs | 4 +- src/TaskManager/Plug-ins/Argo/IArgoClient.cs | 6 +- .../Common/Services/PayloadService.cs | 4 +- .../Parser/ConditionalParameterParser.cs | 2 +- .../Resovler/Conditional.cs | 6 +- .../Resovler/ConditionalGroup.cs | 2 +- .../ConditionsResolver/Resovler/Keyword.cs | 2 +- .../ITaskExecutionStatsRepository.cs | 10 +-- .../TaskExecutionStatsRepository.cs | 32 ++++---- .../Logging/Log.500000.Messaging.cs | 2 +- .../Logging/Log.900000.General.cs | 16 ++-- .../Logging/Log.400000.cs | 4 +- .../MonaiBackgroundService/Worker.cs | 6 +- .../Extensions/ValidationExtensions.cs | 2 +- .../Services/EventPayloadRecieverService.cs | 10 +-- .../Services/IEventPayloadRecieverService.cs | 2 +- .../Services/PayloadListenerService.cs | 6 +- .../Validators/EventPayloadValidator.cs | 14 ++-- .../Validators/IEventPayloadValidator.cs | 2 +- .../Controllers/WorkflowInstanceController.cs | 1 + .../Extentions/WorkflowExecutorExtensions.cs | 4 +- .../TaskStatusUpdateStepDefinitions.cs | 10 +-- .../WorkflowInstancesApiStepDefinitions.cs | 10 +-- .../WorkflowTaskArtifactStepDefinitions.cs | 14 ++-- .../Support/Assertions.cs | 40 +++++----- .../Support/MongoClientUtil.cs | 12 +-- .../Resolver/ConditionalGroupTests.cs | 18 ++--- .../Resolver/ConditionalTests.cs | 6 +- .../TaskExecutionStatsRepositoryTests.cs | 30 ++++---- .../EventPayloadRecieverServiceTests.cs | 4 +- .../Validators/EventPayloadValidatorTests.cs | 2 +- .../ArgoPluginTestBase.cs | 1 + .../TaskManager.Tests/TaskManagerTest.cs | 13 ++-- .../TaskExecutionStatsControllerTests.cs | 10 +-- 37 files changed, 201 insertions(+), 187 deletions(-) diff --git a/src/Common/Miscellaneous/ApiControllerBase.cs b/src/Common/Miscellaneous/ApiControllerBase.cs index 86b3efdc4..931495994 100644 --- a/src/Common/Miscellaneous/ApiControllerBase.cs +++ b/src/Common/Miscellaneous/ApiControllerBase.cs @@ -37,9 +37,9 @@ public class ApiControllerBase : ControllerBase /// Initializes a new instance of the class. /// /// Workflow manager options. - public ApiControllerBase(IOptions Options) + public ApiControllerBase(IOptions options) { - this.Options = Options ?? throw new ArgumentNullException(nameof(Options)); + Options = options ?? throw new ArgumentNullException(nameof(options)); } /// diff --git a/src/TaskManager/Plug-ins/Argo/ArgoClient.cs b/src/TaskManager/Plug-ins/Argo/ArgoClient.cs index 5224afbbe..af3e2a467 100755 --- a/src/TaskManager/Plug-ins/Argo/ArgoClient.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoClient.cs @@ -34,13 +34,17 @@ public async Task Argo_CreateWorkflowAsync(string argoNamespace, Workf var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflows/{argoNamespace}"); - var Method = "POST"; + var method = "POST"; var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(body)); - return await SendRequest(content, urlBuilder, Method, cancellationToken).ConfigureAwait(false); + return await SendRequest(content, urlBuilder, method, cancellationToken).ConfigureAwait(false); } - public async Task Argo_GetWorkflowAsync(string argoNamespace, string name, string? getOptions_resourceVersion, string? fields, CancellationToken cancellationToken) + public async Task Argo_GetWorkflowAsync(string argoNamespace, + string name, + string? getOptionsResourceVersion, + string? fields, + CancellationToken cancellationToken) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -48,9 +52,9 @@ public async Task Argo_CreateWorkflowAsync(string argoNamespace, Workf var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflows/{argoNamespace}/{name}?"); - if (getOptions_resourceVersion != null) + if (getOptionsResourceVersion != null) { - urlBuilder.Append(Uri.EscapeDataString("getOptions.resourceVersion") + "=").Append(Uri.EscapeDataString(ConvertToString(getOptions_resourceVersion, CultureInfo.InvariantCulture))).Append('&'); + urlBuilder.Append(Uri.EscapeDataString("getOptions.resourceVersion") + "=").Append(Uri.EscapeDataString(ConvertToString(getOptionsResourceVersion, CultureInfo.InvariantCulture))).Append('&'); } if (fields != null) { @@ -71,9 +75,9 @@ public async Task Argo_StopWorkflowAsync(string argoNamespace, string var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflows/{argoNamespace}/{name}/stop"); - var Method = "PUT"; + const string method = "PUT"; var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(body)); - return await SendRequest(content, urlBuilder, Method, new CancellationToken()).ConfigureAwait(false); + return await SendRequest(content, urlBuilder, method, new CancellationToken()).ConfigureAwait(false); } @@ -86,12 +90,12 @@ public async Task Argo_TerminateWorkflowAsync(string argoNamespace, st var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflows/{argoNamespace}/{name}/terminate"); - var Method = "PUT"; + const string method = "PUT"; var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(body)); - return await SendRequest(content, urlBuilder, Method, new CancellationToken()).ConfigureAwait(false); + return await SendRequest(content, urlBuilder, method, new CancellationToken()).ConfigureAwait(false); } - public async Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptions_resourceVersion) + public async Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptionsResourceVersion) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -99,9 +103,9 @@ public async Task Argo_TerminateWorkflowAsync(string argoNamespace, st var urlBuilder = new StringBuilder(); urlBuilder.Append(CultureInfo.InvariantCulture, $"{FormattedBaseUrl}/api/v1/workflow-templates/{argoNamespace}/{name}?"); - if (getOptions_resourceVersion != null) + if (getOptionsResourceVersion != null) { - urlBuilder.Append(Uri.EscapeDataString("getOptions.resourceVersion") + "=").Append(Uri.EscapeDataString(ConvertToString(getOptions_resourceVersion, CultureInfo.InvariantCulture))).Append('&'); + urlBuilder.Append(Uri.EscapeDataString("getOptions.resourceVersion") + "=").Append(Uri.EscapeDataString(ConvertToString(getOptionsResourceVersion, CultureInfo.InvariantCulture))).Append('&'); } urlBuilder.Length--; @@ -116,7 +120,7 @@ public async Task Argo_TerminateWorkflowAsync(string argoNamespace, st return await GetRequest(urlBuilder).ConfigureAwait(false); } - public async Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptions_container) + public async Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptionsContainer) { Guard.Against.NullOrWhiteSpace(argoNamespace, nameof(argoNamespace)); Guard.Against.Null(name, nameof(name)); @@ -128,9 +132,9 @@ public async Task Argo_TerminateWorkflowAsync(string argoNamespace, st { urlBuilder.Append(Uri.EscapeDataString("podName") + "=").Append(Uri.EscapeDataString(ConvertToString(podName, CultureInfo.InvariantCulture))).Append('&'); } - if (logOptions_container != null) + if (logOptionsContainer != null) { - urlBuilder.Append(Uri.EscapeDataString("logOptions.container") + "=").Append(Uri.EscapeDataString(ConvertToString(logOptions_container, CultureInfo.InvariantCulture))).Append('&'); + urlBuilder.Append(Uri.EscapeDataString("logOptions.container") + "=").Append(Uri.EscapeDataString(ConvertToString(logOptionsContainer, CultureInfo.InvariantCulture))).Append('&'); } urlBuilder.Length--; @@ -152,8 +156,8 @@ public virtual async Task Argo_CreateWorkflowTemplateAsync(str var stringBody = Newtonsoft.Json.JsonConvert.SerializeObject(body); var content = new StringContent(stringBody); - var _logger = NLog.LogManager.GetCurrentClassLogger(); - _logger.Debug($"Sending content to Argo :{stringBody}"); + var logger = NLog.LogManager.GetCurrentClassLogger(); + logger.Debug($"Sending content to Argo :{stringBody.Replace(Environment.NewLine, "")}"); return await SendRequest(content, urlBuilder, method, cancellationToken).ConfigureAwait(false); } @@ -250,22 +254,22 @@ protected async Task SendRequest(StringContent stringContent, StringBuilde try { - var headers = Enumerable.ToDictionary(response.Headers, h_ => h_.Key, h_ => h_.Value); + var headers = Enumerable.ToDictionary(response.Headers, h => h.Key, h => h.Value); if (response.Content != null && response.Content.Headers != null) { - foreach (var item_ in response.Content.Headers) - headers[item_.Key] = item_.Value; + foreach (var item in response.Content.Headers) + headers[item.Key] = item.Value; } var status = (int)response.StatusCode; if (status == 200) { - var objectResponse_ = await ReadObjectResponseAsync(response, headers).ConfigureAwait(false); - if (objectResponse_.Object == null) + var objectResponse = await ReadObjectResponseAsync(response, headers).ConfigureAwait(false); + if (objectResponse.Object == null) { - throw new ApiException("Response was null which was not expected.", status, objectResponse_.Text, headers, null); + throw new ApiException("Response was null which was not expected.", status, objectResponse.Text, headers, null); } - return objectResponse_.Object; + return objectResponse.Object; } else { @@ -296,34 +300,34 @@ protected async Task SendRequest(StringContent stringContent, StringBuilde var response = await HttpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false); try { - var headers_ = Enumerable.ToDictionary(response.Headers, h_ => h_.Key, h_ => h_.Value); + var headers = Enumerable.ToDictionary(response.Headers, h => h.Key, h => h.Value); if (response.Content != null && response.Content.Headers != null) { - foreach (var item_ in response.Content.Headers) - headers_[item_.Key] = item_.Value; + foreach (var item in response.Content.Headers) + headers[item.Key] = item.Value; } var status = (int)response.StatusCode; if (status == 200) { - ObjectResponseResult objectResponse_; + ObjectResponseResult objectResponse; - objectResponse_ = await ReadObjectResponseAsync(response, headers_, isLogs).ConfigureAwait(false); + objectResponse = await ReadObjectResponseAsync(response, headers, isLogs).ConfigureAwait(false); - if (objectResponse_.Object == null) + if (objectResponse.Object == null) { - throw new ApiException("Response was null which was not expected.", status, objectResponse_.Text, headers_, null); + throw new ApiException("Response was null which was not expected.", status, objectResponse.Text, headers, null); } - return objectResponse_.Object; + return objectResponse.Object; } else { - var objectResponse_ = await ReadObjectResponseAsync(response, headers_, false).ConfigureAwait(false); - if (objectResponse_.Object == null) + var objectResponse = await ReadObjectResponseAsync(response, headers, false).ConfigureAwait(false); + if (objectResponse.Object == null) { - throw new ApiException("Response was null which was not expected.", status, objectResponse_.Text, headers_, null); + throw new ApiException("Response was null which was not expected.", status, objectResponse.Text, headers, null); } - throw new ApiException("An unexpected error response.", status, objectResponse_.Text, headers_, objectResponse_.Object, null); + throw new ApiException("An unexpected error response.", status, objectResponse.Text, headers, objectResponse.Object, null); } } finally diff --git a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs index 579378c86..d276c1f70 100755 --- a/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs @@ -818,6 +818,7 @@ private async Task CopyTemplateSteps(ICollection steps, WorkflowT } } + // ReSharper disable once InconsistentNaming private async Task GenerateK8sSecretFrom(Messaging.Common.Storage storage, CancellationToken cancellationToken) { Guard.Against.Null(storage, nameof(storage)); diff --git a/src/TaskManager/Plug-ins/Argo/ArgoProvider.cs b/src/TaskManager/Plug-ins/Argo/ArgoProvider.cs index 6a89f5de5..e4a2181dc 100644 --- a/src/TaskManager/Plug-ins/Argo/ArgoProvider.cs +++ b/src/TaskManager/Plug-ins/Argo/ArgoProvider.cs @@ -40,9 +40,9 @@ public IArgoClient CreateClient(string baseUrl, string? apiToken, bool allowInse _logger.CreatingArgoClient(baseUrl); - var ClientName = allowInsecure is true ? "Argo-Insecure" : "Argo"; + var clientName = allowInsecure ? "Argo-Insecure" : "Argo"; - var httpClient = _httpClientFactory.CreateClient(ClientName); + var httpClient = _httpClientFactory.CreateClient(clientName); Guard.Against.Null(httpClient, nameof(httpClient)); diff --git a/src/TaskManager/Plug-ins/Argo/IArgoClient.cs b/src/TaskManager/Plug-ins/Argo/IArgoClient.cs index ded53f890..b2c342328 100644 --- a/src/TaskManager/Plug-ins/Argo/IArgoClient.cs +++ b/src/TaskManager/Plug-ins/Argo/IArgoClient.cs @@ -23,9 +23,9 @@ public interface IArgoClient { Task Argo_CreateWorkflowAsync(string argoNamespace, WorkflowCreateRequest body, CancellationToken cancellationToken); - Task Argo_GetWorkflowAsync(string argoNamespace, string name, string? getOptions_resourceVersion, string? fields, CancellationToken cancellationToken); + Task Argo_GetWorkflowAsync(string argoNamespace, string name, string? getOptionsResourceVersion, string? fields, CancellationToken cancellationToken); - Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptions_resourceVersion); + Task Argo_GetWorkflowTemplateAsync(string argoNamespace, string name, string? getOptionsResourceVersion); Task Argo_StopWorkflowAsync(string argoNamespace, string name, WorkflowStopRequest body); @@ -33,7 +33,7 @@ public interface IArgoClient Task Argo_GetVersionAsync(); - Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptions_container); + Task Argo_Get_WorkflowLogsAsync(string argoNamespace, string name, string? podName, string logOptionsContainer); Task Argo_CreateWorkflowTemplateAsync(string argoNamespace, WorkflowTemplateCreateRequest body, CancellationToken cancellationToken); diff --git a/src/WorkflowManager/Common/Services/PayloadService.cs b/src/WorkflowManager/Common/Services/PayloadService.cs index 68b990b0a..72eb342f5 100644 --- a/src/WorkflowManager/Common/Services/PayloadService.cs +++ b/src/WorkflowManager/Common/Services/PayloadService.cs @@ -52,8 +52,8 @@ public PayloadService( _dicomService = dicomService ?? throw new ArgumentNullException(nameof(dicomService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - var _serviceScopeFactory = serviceScopeFactory ?? throw new ArgumentNullException(nameof(serviceScopeFactory)); - var scope = _serviceScopeFactory.CreateScope(); + var scopeFactory = serviceScopeFactory ?? throw new ArgumentNullException(nameof(serviceScopeFactory)); + var scope = scopeFactory.CreateScope(); _storageService = scope.ServiceProvider.GetService() ?? throw new ArgumentNullException(nameof(IStorageService)); } diff --git a/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs b/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs index da89cbf5e..78b56fb91 100644 --- a/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs +++ b/src/WorkflowManager/ConditionsResolver/Parser/ConditionalParameterParser.cs @@ -21,10 +21,10 @@ using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Constants; using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; -using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Monai.Deploy.WorkflowManager.Common.Logging; using Monai.Deploy.WorkflowManager.Common.Storage.Services; +using Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler; namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Parser { diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs index 73d03c8c4..9580ec77e 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs @@ -17,7 +17,9 @@ using System.Globalization; using System.Text.RegularExpressions; -namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver +// ReSharper disable InconsistentNaming + +namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler { public sealed class Conditional { @@ -314,7 +316,7 @@ private bool ContainsEvaluate() return arr.Any(p => CleanString(p).Equals(compare)); } - private static string CleanString(string p) => p.Trim().Trim('\"').Trim('\'').Trim('“').Trim('”'); + private static string CleanString(string p) => p.Trim().Trim('\"').Trim('\'').Trim('�').Trim('�'); private static bool EqualsNullOrDefined(string str) => str.Trim().Equals(NULL, StringComparison.InvariantCultureIgnoreCase) diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs b/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs index 389a0975b..bab6f251b 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/ConditionalGroup.cs @@ -18,7 +18,7 @@ using Ardalis.GuardClauses; using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Extensions; -namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver +namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler { public class ConditionalGroup { diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs index 9bd77f3dd..d10acea9a 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Keyword.cs @@ -14,7 +14,7 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver +namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler { /// /// Group Keywords or Operators diff --git a/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs b/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs index 16f51022d..998f52eff 100644 --- a/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs +++ b/src/WorkflowManager/Database/Interfaces/ITaskExecutionStatsRepository.cs @@ -28,11 +28,11 @@ public interface ITaskExecutionStatsRepository /// /// Creates a task dispatch event in the database. /// - /// + /// /// workflow id. /// task id. /// - Task CreateAsync(TaskExecution TaskExecutionInfo, string workflowId, string correlationId); + Task CreateAsync(TaskExecution taskExecutionInfo, string workflowId, string correlationId); /// /// Updates status of a task dispatch event in the database. @@ -57,12 +57,12 @@ public interface ITaskExecutionStatsRepository /// /// start of the range. /// end of the range. - /// - /// + /// + /// /// optional workflow id. /// optional task id. /// a collections of stats - Task> GetStatsAsync(DateTime startTime, DateTime endTime, int PageSize = 10, int PageNumber = 1, string workflowId = "", string taskId = ""); + Task> GetStatsAsync(DateTime startTime, DateTime endTime, int pageSize = 10, int pageNumber = 1, string workflowId = "", string taskId = ""); /// /// Return the count of the entries with this status, or all if no status given. diff --git a/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs b/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs index b8c0c7690..4d272785f 100644 --- a/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs +++ b/src/WorkflowManager/Database/Repositories/TaskExecutionStatsRepository.cs @@ -51,12 +51,12 @@ public TaskExecutionStatsRepository( EnsureIndex(_taskExecutionStatsCollection).GetAwaiter().GetResult(); } - private static async Task EnsureIndex(IMongoCollection TaskExecutionStatsCollection) + private static async Task EnsureIndex(IMongoCollection taskExecutionStatsCollection) { - Guard.Against.Null(TaskExecutionStatsCollection, "TaskExecutionStatsCollection"); + Guard.Against.Null(taskExecutionStatsCollection, "TaskExecutionStatsCollection"); - var asyncCursor = (await TaskExecutionStatsCollection.Indexes.ListAsync()); - var bsonDocuments = (await asyncCursor.ToListAsync()); + var asyncCursor = await taskExecutionStatsCollection.Indexes.ListAsync(); + var bsonDocuments = await asyncCursor.ToListAsync(); var indexes = bsonDocuments.Select(_ => _.GetElement("name").Value.ToString()).ToList(); // If index not present create it else skip. @@ -73,17 +73,17 @@ private static async Task EnsureIndex(IMongoCollection TaskExecu options ); - await TaskExecutionStatsCollection.Indexes.CreateOneAsync(model); + await taskExecutionStatsCollection.Indexes.CreateOneAsync(model); } } - public async Task CreateAsync(TaskExecution TaskExecutionInfo, string workflowId, string correlationId) + public async Task CreateAsync(TaskExecution taskExecutionInfo, string workflowId, string correlationId) { - Guard.Against.Null(TaskExecutionInfo, "taskDispatchEventInfo"); + Guard.Against.Null(taskExecutionInfo, "taskDispatchEventInfo"); try { - var insertMe = new ExecutionStats(TaskExecutionInfo, workflowId, correlationId); + var insertMe = new ExecutionStats(taskExecutionInfo, workflowId, correlationId); await _taskExecutionStatsCollection.ReplaceOneAsync(doc => doc.ExecutionId == insertMe.ExecutionId, @@ -149,15 +149,15 @@ await _taskExecutionStatsCollection.UpdateOneAsync(o => } } - public async Task> GetStatsAsync(DateTime startTime, DateTime endTime, int PageSize = 10, int PageNumber = 1, string workflowId = "", string taskId = "") + public async Task> GetStatsAsync(DateTime startTime, DateTime endTime, int pageSize = 10, int pageNumber = 1, string workflowId = "", string taskId = "") { CreateFilter(startTime, endTime, workflowId, taskId, out var builder, out var filter); filter &= builder.Where(GetExecutedTasksFilter()); var result = await _taskExecutionStatsCollection.Find(filter) - .Limit(PageSize) - .Skip((PageNumber - 1) * PageSize) + .Limit(pageSize) + .Skip((pageNumber - 1) * pageSize) .ToListAsync(); return result; } @@ -183,7 +183,7 @@ private static ExecutionStats ExposeExecutionStats(ExecutionStats taskExecutionS } /// - /// Calculates and sets ExecutionStats ExecutionTimeSeconds + /// Calculates and sets ExecutionStats ExecutionTimeSeconds /// /// /// @@ -196,11 +196,11 @@ private static void CalculatePodExecutionTime(ExecutionStats taskExecutionStats, { if (statKey.Contains("StartTime") && DateTime.TryParse(taskUpdateEvent.ExecutionStats[statKey], out var startTime)) { - start = (startTime < start ? startTime : start); + start = startTime < start ? startTime : start; } else if (DateTime.TryParse(taskUpdateEvent.ExecutionStats[statKey], out var endTime)) { - end = (endTime > end ? endTime : start); + end = endTime > end ? endTime : start; } } taskExecutionStats.ExecutionTimeSeconds = (end - start).TotalMilliseconds / 1000; @@ -286,8 +286,8 @@ public async Task GetStatsStatusFailedCountAsync(DateTime startTime, DateT .Match(filter) .Group(g => new { g.Version }, r => new { - avgTotalExecution = r.Average(x => (x.DurationSeconds)), - avgArgoExecution = r.Average(x => (x.ExecutionTimeSeconds)) + avgTotalExecution = r.Average(x => x.DurationSeconds), + avgArgoExecution = r.Average(x => x.ExecutionTimeSeconds) }).ToListAsync(); var firstResult = test.FirstOrDefault() ?? new { avgTotalExecution = 0.0, avgArgoExecution = 0.0 }; diff --git a/src/WorkflowManager/Logging/Log.500000.Messaging.cs b/src/WorkflowManager/Logging/Log.500000.Messaging.cs index a79eed69e..dcadc5bf2 100644 --- a/src/WorkflowManager/Logging/Log.500000.Messaging.cs +++ b/src/WorkflowManager/Logging/Log.500000.Messaging.cs @@ -16,7 +16,7 @@ using Microsoft.Extensions.Logging; -namespace Monai.Deploy.WorkflowManager.Common.Logging +namespace Monai.Deploy.WorkflowManager.Logging { public static partial class Log { diff --git a/src/WorkflowManager/Logging/Log.900000.General.cs b/src/WorkflowManager/Logging/Log.900000.General.cs index ef474dffa..f176f4f25 100644 --- a/src/WorkflowManager/Logging/Log.900000.General.cs +++ b/src/WorkflowManager/Logging/Log.900000.General.cs @@ -20,26 +20,26 @@ namespace Monai.Deploy.WorkflowManager.Common.Logging { public static partial class Log { - [LoggerMessage(EventId = 900000, Level = LogLevel.Trace, Message = "{ServiceName} started.")] + [LoggerMessage(EventId = 900000, Level = LogLevel.Trace, Message = "{serviceName} started.")] public static partial void ServiceStarted(this ILogger logger, string serviceName); - [LoggerMessage(EventId = 900001, Level = LogLevel.Trace, Message = "{ServiceName} starting.")] + [LoggerMessage(EventId = 900001, Level = LogLevel.Trace, Message = "{serviceName} starting.")] public static partial void ServiceStarting(this ILogger logger, string serviceName); - [LoggerMessage(EventId = 900002, Level = LogLevel.Trace, Message = "{ServiceName} is stopping.")] + [LoggerMessage(EventId = 900002, Level = LogLevel.Trace, Message = "{serviceName} is stopping.")] public static partial void ServiceStopping(this ILogger logger, string serviceName); - [LoggerMessage(EventId = 900003, Level = LogLevel.Information, Message = "Waiting for {ServiceName} to stop.")] + [LoggerMessage(EventId = 900003, Level = LogLevel.Information, Message = "Waiting for {serviceName} to stop.")] public static partial void ServiceStopPending(this ILogger logger, string serviceName); - [LoggerMessage(EventId = 900004, Level = LogLevel.Warning, Message = "{ServiceName} canceled.")] + [LoggerMessage(EventId = 900004, Level = LogLevel.Warning, Message = "{serviceName} canceled.")] public static partial void ServiceCancelled(this ILogger logger, string serviceName); - [LoggerMessage(EventId = 900005, Level = LogLevel.Warning, Message = "{ServiceName} canceled.")] + [LoggerMessage(EventId = 900005, Level = LogLevel.Warning, Message = "{serviceName} canceled.")] public static partial void ServiceCancelledWithException(this ILogger logger, string serviceName, Exception ex); - [LoggerMessage(EventId = 900006, Level = LogLevel.Trace, Message = "{ServiceName} Worker completed in: {Elapsed_millis} milliseconds.")] - public static partial void ServiceCompleted(this ILogger logger, string serviceName, int elapsed_millis); + [LoggerMessage(EventId = 900006, Level = LogLevel.Trace, Message = "{serviceName} Worker completed in: {elapsedMillis} milliseconds.")] + public static partial void ServiceCompleted(this ILogger logger, string serviceName, int elapsedMillis); [LoggerMessage(EventId = 900007, Level = LogLevel.Error, Message = "Recovering connection to storage service: {reason}.")] public static partial void MessagingServiceErrorRecover(this ILogger logger, string reason); diff --git a/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs b/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs index b068ceca1..c3b68ff51 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs +++ b/src/WorkflowManager/MonaiBackgroundService/Logging/Log.400000.cs @@ -14,7 +14,9 @@ * limitations under the License. */ -namespace Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService.Logging +using Microsoft.Extensions.Logging; + +namespace Monai.Deploy.WorkflowManager.MonaiBackgroundService.Logging { public static partial class Log { diff --git a/src/WorkflowManager/MonaiBackgroundService/Worker.cs b/src/WorkflowManager/MonaiBackgroundService/Worker.cs index 1e1c26eec..a786f587d 100644 --- a/src/WorkflowManager/MonaiBackgroundService/Worker.cs +++ b/src/WorkflowManager/MonaiBackgroundService/Worker.cs @@ -21,8 +21,8 @@ using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.Common.Contracts.Models; using Monai.Deploy.WorkflowManager.Common.Logging; -using Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService.Logging; using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; +using Monai.Deploy.WorkflowManager.MonaiBackgroundService.Logging; namespace Monai.Deploy.WorkflowManager.Common.MonaiBackgroundService { @@ -71,8 +71,8 @@ public async Task DoWork() { try { - var (Tasks, _) = await _tasksService.GetAllAsync(); - foreach (var task in Tasks.Where(t => t.TimeoutInterval != 0 && t.Timeout < DateTime.UtcNow)) + var (tasks, _) = await _tasksService.GetAllAsync(); + foreach (var task in tasks.Where(t => t.TimeoutInterval != 0 && t.Timeout < DateTime.UtcNow)) { task.ResultMetadata.TryGetValue(JobIdentity, out var identity); diff --git a/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs b/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs index a0a2b29a6..2745d712c 100644 --- a/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs +++ b/src/WorkflowManager/PayloadListener/Extensions/ValidationExtensions.cs @@ -18,7 +18,7 @@ using Monai.Deploy.Messaging.Events; using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Extensions +namespace Monai.Deploy.WorkflowManager.PayloadListener.Extensions { public static class ValidationExtensions { diff --git a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs index dcc7dbcc8..21deaadbf 100644 --- a/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs +++ b/src/WorkflowManager/PayloadListener/Services/EventPayloadRecieverService.cs @@ -19,11 +19,11 @@ using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; -using Monai.Deploy.WorkflowManager.Common.Logging; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.Logging; +using Monai.Deploy.WorkflowManager.PayloadListener.Validators; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.PayloadListener.Services { public class EventPayloadReceiverService : IEventPayloadReceiverService { @@ -57,11 +57,11 @@ public async Task ReceiveWorkflowPayload(MessageReceivedEventArgs message) { var requestEvent = message.Message.ConvertTo(); - using var loggingScope = (Logger.BeginScope(new LoggingDataDictionary + using var loggingScope = Logger.BeginScope(new LoggingDataDictionary { ["correlationId"] = requestEvent.CorrelationId, ["workflowId"] = requestEvent.Workflows.FirstOrDefault() - })); + }); var validation = PayloadValidator.ValidateWorkflowRequest(requestEvent); diff --git a/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs b/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs index 2772687f6..cd30ec036 100644 --- a/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs +++ b/src/WorkflowManager/PayloadListener/Services/IEventPayloadRecieverService.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Common; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.PayloadListener.Services { public interface IEventPayloadReceiverService { diff --git a/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs b/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs index 74490f57f..be8a0fafe 100644 --- a/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs +++ b/src/WorkflowManager/PayloadListener/Services/PayloadListenerService.cs @@ -23,8 +23,9 @@ using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.Common.Logging; using Monai.Deploy.WorkflowManager.Common.Miscellaneous; +using Monai.Deploy.WorkflowManager.Logging; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Services +namespace Monai.Deploy.WorkflowManager.PayloadListener.Services { public class PayloadListenerService : IHostedService, IMonaiService, IDisposable { @@ -103,8 +104,7 @@ private void SetupPolling() _logger.EventSubscription(ServiceName, TaskStatusUpdateRoutingKey); _messageSubscriber.SubscribeAsync(ExportCompleteRoutingKey, ExportCompleteRoutingKey, OnExportCompleteReceivedCallback); - _logger.EventSubscription(ServiceName, ExportCompleteRoutingKey); - } + _logger.EventSubscription(ServiceName, ExportCompleteRoutingKey); } private async Task OnWorkflowRequestReceivedCallbackAsync(MessageReceivedEventArgs eventArgs) { diff --git a/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs b/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs index c188d9388..38a4471c9 100644 --- a/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs +++ b/src/WorkflowManager/PayloadListener/Validators/EventPayloadValidator.cs @@ -18,10 +18,10 @@ using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Common; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.Logging; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Extensions; +using Monai.Deploy.WorkflowManager.PayloadListener.Extensions; +using Log = Monai.Deploy.WorkflowManager.Logging.Log; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators +namespace Monai.Deploy.WorkflowManager.PayloadListener.Validators { public class EventPayloadValidator : IEventPayloadValidator { @@ -47,7 +47,7 @@ public bool ValidateWorkflowRequest(WorkflowRequestEvent payload) if (!payloadValid) { - Logger.FailedToValidateWorkflowRequestEvent(string.Join(Environment.NewLine, validationErrors)); + Log.FailedToValidateWorkflowRequestEvent(Logger, string.Join(Environment.NewLine, validationErrors)); } valid &= payloadValid; @@ -58,7 +58,7 @@ public bool ValidateWorkflowRequest(WorkflowRequestEvent payload) if (!workflowValid) { - Logger.FailedToValidateWorkflowRequestEvent("Workflow id is empty string"); + Log.FailedToValidateWorkflowRequestEvent(Logger, "Workflow id is empty string"); } valid &= workflowValid; @@ -84,7 +84,7 @@ public bool ValidateTaskUpdate(TaskUpdateEvent payload) } catch (MessageValidationException e) { - Logger.FailedToValidateTaskUpdateEvent(e); + Log.FailedToValidateTaskUpdateEvent(Logger, e); return false; } @@ -107,7 +107,7 @@ public bool ValidateExportComplete(ExportCompleteEvent payload) } catch (MessageValidationException e) { - Logger.FailedToValidateExportCompleteEvent(e); + Log.FailedToValidateExportCompleteEvent(Logger, e); return false; } diff --git a/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs b/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs index e8835e77b..77e4f7856 100644 --- a/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs +++ b/src/WorkflowManager/PayloadListener/Validators/IEventPayloadValidator.cs @@ -16,7 +16,7 @@ using Monai.Deploy.Messaging.Events; -namespace Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators +namespace Monai.Deploy.WorkflowManager.PayloadListener.Validators { public interface IEventPayloadValidator { diff --git a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs index 9e3b30546..1afae227e 100644 --- a/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs +++ b/src/WorkflowManager/WorkflowManager/Controllers/WorkflowInstanceController.cs @@ -40,6 +40,7 @@ namespace Monai.Deploy.WorkflowManager.Common.ControllersShared [Route("workflowinstances")] public class WorkflowInstanceController : AuthenticatedApiControllerBase { + // ReSharper disable once InconsistentNaming private const string ENDPOINT = "/workflowinstances/"; private readonly IOptions _options; private readonly IWorkflowInstanceService _workflowInstanceService; diff --git a/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs b/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs index 80d89d24a..2d94ec7e5 100644 --- a/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs +++ b/src/WorkflowManager/WorkflowManager/Extentions/WorkflowExecutorExtensions.cs @@ -22,12 +22,12 @@ using Monai.Deploy.WorkflowManager.Common.Miscellaneous; using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Services; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; using Monai.Deploy.WorkflowManager.Common.Services.InformaticsGateway; using Monai.Deploy.WorkflowManager.Common.Storage.Services; using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Common; using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.PayloadListener.Services; +using Monai.Deploy.WorkflowManager.PayloadListener.Validators; namespace Monai.Deploy.WorkflowManager.Common.Extensions { diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs index 2bc636546..4997462bb 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/TaskStatusUpdateStepDefinitions.cs @@ -238,8 +238,8 @@ public void ThenICanSeeTheStatusOfTheTaskIsSucceeded(string taskId, string taskS _outputHelper.WriteLine($"Retrieving workflow instance by id={workflowInstanceId}"); var updatedWorkflowInstance = MongoClient.GetWorkflowInstanceById(workflowInstanceId); _outputHelper.WriteLine("Retrieved workflow instance"); - TaskExecutionStatus ExecutionStatus; - ExecutionStatus = taskStatus.ToLower() switch + TaskExecutionStatus executionStatus; + executionStatus = taskStatus.ToLower() switch { "accepted" => TaskExecutionStatus.Accepted, "succeeded" => TaskExecutionStatus.Succeeded, @@ -252,14 +252,14 @@ public void ThenICanSeeTheStatusOfTheTaskIsSucceeded(string taskId, string taskS RetryPolicy.Execute(() => { - if (updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status != ExecutionStatus) + if (updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status != executionStatus) { updatedWorkflowInstance = MongoClient.GetWorkflowInstanceById(workflowInstanceId); - throw new Exception($"Task Update Status for the task is {updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status} and it should be {ExecutionStatus}"); + throw new Exception($"Task Update Status for the task is {updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status} and it should be {executionStatus}"); } }); - updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status.Should().Be(ExecutionStatus); + updatedWorkflowInstance.Tasks.FirstOrDefault(x => x.TaskId == taskId)?.Status.Should().Be(executionStatus); } [Then(@"I can see the Metadata is copied to the workflow instance")] diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs index 785cb6762..a44b4fcd0 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowInstancesApiStepDefinitions.cs @@ -80,19 +80,19 @@ public void ThenPaginationIsWorkingCorrectlyForTheWorkflowInstance(int count) } [Then(@"All results have correct (.*) and (.*)")] - public void AllResultsHaveExpectedStatusOrPayloadId(int? expected_status, string? expected_payloadId) + public void AllResultsHaveExpectedStatusOrPayloadId(int? expectedStatus, string? expectedPayloadId) { var result = ApiHelper.Response.Content.ReadAsStringAsync().Result; var deserializedResult = JsonConvert.DeserializeObject>>(result); Action func = wi => { }; - if (string.IsNullOrWhiteSpace(expected_payloadId) is false) + if (string.IsNullOrWhiteSpace(expectedPayloadId) is false) { - func += wi => wi.PayloadId.Should().Be(expected_payloadId); + func += wi => wi.PayloadId.Should().Be(expectedPayloadId); } - if (expected_status is not null) + if (expectedStatus is not null) { - func += wi => wi.Status.Should().Be((Status)expected_status); + func += wi => wi.Status.Should().Be((Status)expectedStatus); } deserializedResult.Should().NotBeNull(); diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs index d7e927eba..58e7ac930 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/StepDefinitions/WorkflowTaskArtifactStepDefinitions.cs @@ -37,24 +37,24 @@ public WorkflowTaskArtifactStepDefinitions(ObjectContainer objectContainer, Scen [Then(@"Input artifacts are mapped")] public void ThenInputArtifactsAreMapped() { - string PayloadId; + string payloadId; if (DataHelper.SeededWorkflowInstances == null) { - PayloadId = DataHelper.WorkflowRequestMessage.PayloadId.ToString(); + payloadId = DataHelper.WorkflowRequestMessage.PayloadId.ToString(); } else { - PayloadId = DataHelper.WorkflowInstances[0].PayloadId; + payloadId = DataHelper.WorkflowInstances[0].PayloadId; } - _outputHelper.WriteLine($"Retrieving updated workflow instance using the payloadid={PayloadId}"); + _outputHelper.WriteLine($"Retrieving updated workflow instance using the payloadid={payloadId}"); - var workflowInstances = DataHelper.GetWorkflowInstances(1, PayloadId); + var workflowInstances = DataHelper.GetWorkflowInstances(1, payloadId); if (workflowInstances == null) { - throw new Exception($"WorkflowInstance not found for payloadId {PayloadId}"); + throw new Exception($"WorkflowInstance not found for payloadId {payloadId}"); } _outputHelper.WriteLine("Retrieved workflow instance"); @@ -75,7 +75,7 @@ public void ThenInputArtifactsAreMapped() var workflowTask = workflowRevision.Workflow.Tasks.First(x => x.Id.Equals(task.TaskId)); #pragma warning restore CS8602 // Dereference of a possibly null reference. - Assertions.AssertInputArtifactsForWorkflowInstance(workflowTask, PayloadId, task); + Assertions.AssertInputArtifactsForWorkflowInstance(workflowTask, payloadId, task); } } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs index 86f379a0f..5e66fa743 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/Assertions.cs @@ -321,10 +321,10 @@ public void AssertWorkflowIstanceMatchesExpectedTaskStatusUpdate(WorkflowInstanc updatedWorkflowInstance.Tasks[0].Status.Should().Be(taskExecutionStatus); } - public static void AssertSearch(int count, string? queries, T? Response) + public static void AssertSearch(int count, string? queries, T? response) { - var responseType = Response?.GetType(); - GetPropertyValues(Response, responseType, out var data, out var totalPages, out var pageSize, out var totalRecords, out var pageNumber); + var responseType = response?.GetType(); + GetPropertyValues(response, responseType, out var data, out var totalPages, out var pageSize, out var totalRecords, out var pageNumber); if (string.IsNullOrWhiteSpace(queries) is false) { var splitQuery = queries?.Split("&") ?? Array.Empty(); @@ -361,10 +361,10 @@ public static void AssertSearch(int count, string? queries, T? Response) data.Count.Should().Be(count); } - public static void AssertPagination(int count, string? queries, T? Response) + public static void AssertPagination(int count, string? queries, T? response) { - var responseType = Response?.GetType(); - GetPropertyValues(Response, responseType, out var data, out var totalPages, out var pageSize, out var totalRecords, out var pageNumber); + var responseType = response?.GetType(); + GetPropertyValues(response, responseType, out var data, out var totalPages, out var pageSize, out var totalRecords, out var pageNumber); var pageNumberQuery = 1; var pageSizeQuery = 10; @@ -399,15 +399,15 @@ public static void AssertPagination(int count, string? queries, T? Response) pageSize.Should().Be(pageSizeQuery); } - private static void GetPropertyValues(T? Response, Type? responseType, out ICollection data, out object? totalPages, out object? pageSize, out object? totalRecords, out object? pageNumber) + private static void GetPropertyValues(T? response, Type? responseType, out ICollection data, out object? totalPages, out object? pageSize, out object? totalRecords, out object? pageNumber) { #pragma warning disable CS8601 // Possible null reference assignment. - data = responseType?.GetProperty("Data")?.GetValue(Response, null) as ICollection; + data = responseType?.GetProperty("Data")?.GetValue(response, null) as ICollection; #pragma warning restore CS8601 // Possible null reference assignment. - totalPages = responseType?.GetProperty("TotalPages")?.GetValue(Response, null); - pageSize = responseType?.GetProperty("PageSize")?.GetValue(Response, null); - totalRecords = responseType?.GetProperty("TotalRecords")?.GetValue(Response, null); - pageNumber = responseType?.GetProperty("PageNumber")?.GetValue(Response, null); + totalPages = responseType?.GetProperty("TotalPages")?.GetValue(response, null); + pageSize = responseType?.GetProperty("PageSize")?.GetValue(response, null); + totalRecords = responseType?.GetProperty("TotalRecords")?.GetValue(response, null); + pageNumber = responseType?.GetProperty("PageNumber")?.GetValue(response, null); } public void WorkflowInstanceIncludesTaskDetails(List taskDispatchEvents, WorkflowInstance workflowInstance, WorkflowRevision workflowRevision) @@ -484,38 +484,38 @@ public void AssertWorkflowInstance(List expectedWorkflowInstan #pragma warning restore CS8602 // Dereference of a possibly null reference. } - private static void AssertDataCount(ICollection Data, int pageNumberQuery, int pageSizeQuery, int count) + private static void AssertDataCount(ICollection data, int pageNumberQuery, int pageSizeQuery, int count) { if ((pageNumberQuery * pageSizeQuery) > count) { - Data?.Count.Should().Be(Math.Max(count - ((pageNumberQuery - 1) * pageSizeQuery), 0)); + data?.Count.Should().Be(Math.Max(count - ((pageNumberQuery - 1) * pageSizeQuery), 0)); } else if ((pageNumberQuery * pageSizeQuery) < count) { - Data?.Count.Should().Be(pageSizeQuery); + data?.Count.Should().Be(pageSizeQuery); } else if (pageNumberQuery > 1) { - Data?.Count.Should().Be(Math.Max(count - (pageSizeQuery * (pageNumberQuery - 1)), 0)); + data?.Count.Should().Be(Math.Max(count - (pageSizeQuery * (pageNumberQuery - 1)), 0)); } else { - Data?.Count.Should().Be(count); + data?.Count.Should().Be(count); } } - private static void AssertTotalPages(object? TotalPages, int count, int pageSizeQuery) + private static void AssertTotalPages(object? totalPages, int count, int pageSizeQuery) { int remainder; int quotient = Math.DivRem(count, pageSizeQuery, out remainder); if (remainder == 0) { - TotalPages.Should().Be(quotient); + totalPages.Should().Be(quotient); } else { - TotalPages.Should().Be(quotient + 1); + totalPages.Should().Be(quotient + 1); } } diff --git a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs index f959a3c6c..f19c11a63 100644 --- a/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs +++ b/tests/IntegrationTests/WorkflowExecutor.IntegrationTests/Support/MongoClientUtil.cs @@ -120,14 +120,14 @@ public WorkflowInstance GetWorkflowInstance(string payloadId) return WorkflowInstanceCollection.Find(x => x.PayloadId == payloadId).FirstOrDefault(); } - public WorkflowInstance GetWorkflowInstanceById(string Id) + public WorkflowInstance GetWorkflowInstanceById(string id) { - return WorkflowInstanceCollection.Find(x => x.Id == Id).FirstOrDefault(); + return WorkflowInstanceCollection.Find(x => x.Id == id).FirstOrDefault(); } - public WorkflowInstance GetWorkflowInstanceByWorkflowId(string Id) + public WorkflowInstance GetWorkflowInstanceByWorkflowId(string id) { - return WorkflowInstanceCollection.Find(x => x.WorkflowId == Id).FirstOrDefault(); + return WorkflowInstanceCollection.Find(x => x.WorkflowId == id).FirstOrDefault(); } public List GetWorkflowInstancesByPayloadId(string payloadId) @@ -237,11 +237,11 @@ internal void DeleteAllExecutionStats() }); } - public void CreateExecutionStats(ExecutionStats ExecutionStats) + public void CreateExecutionStats(ExecutionStats executionStats) { RetryMongo.Execute(() => { - ExecutionStatsCollection.InsertOne(ExecutionStats); + ExecutionStatsCollection.InsertOne(executionStats); }); } diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs index ac96eca6e..343e248e4 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalGroupTests.cs @@ -15,7 +15,7 @@ */ using System; -using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; +using Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler; using Xunit; namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver @@ -40,7 +40,7 @@ public class ConditionalGroupTests [InlineData("'F' == 'F' AND 'F' == 'leg' OR 'F' == 'F' AND 'F' == 'F' OR 'F' == 'F'")] [InlineData("'F' == 'F' AND 'F' == 'leg' OR 'F' == 'F' OR 'F' == 'F' AND 'F' == 'F'")] [InlineData("'AND' == 'OR' AND 'F' == 'leg' OR 'F' == 'F' OR 'F' == 'F' AND 'F' == 'F'")] - [InlineData("'Donkey' CONTAINS [“Donkey”, “Alpaca”, “Zebra”] AND 'F' == 'F'")] + [InlineData("'Donkey' CONTAINS [�Donkey�, �Alpaca�, �Zebra�] AND 'F' == 'F'")] public void ConditionalGroup_WhenProvidedCorrectInput_ShouldCreateAndHaveLeftAndRightGroups(string input) { var conditionalGroup = ConditionalGroup.Create(input); @@ -51,13 +51,13 @@ public void ConditionalGroup_WhenProvidedCorrectInput_ShouldCreateAndHaveLeftAnd [Theory] [InlineData(true, "'F' == 'F'")] [InlineData(false, "'F' == 'leg'")] - [InlineData(true, "'Donkey' CONTAINS [“Donkey”, “Alpaca”, “Zebra”]")] - [InlineData(true, "'lillie' contains [“jack”, “lillie”, “neil”]")] - [InlineData(false, "'Donkey' CONTAINS [“aDonkeya”, “Alpaca”, “Zebra”]")] - [InlineData(true, "[“Donkey”, “Alpaca”, “Zebra”] CONTAINS 'Donkey'")] - [InlineData(false, "[“Donkey”, “Alpaca”, “Zebra”] CONTAINS 'Betty'")] - [InlineData(false, "'Donkey' NOT_CONTAINS [“Donkey”, “Alpaca”, “Zebra”]")] - [InlineData(false, "'Donkey' not_contains [“Donkey”, “Alpaca”, “Zebra”]")] + [InlineData(true, "'Donkey' CONTAINS [�Donkey�, �Alpaca�, �Zebra�]")] + [InlineData(true, "'lillie' contains [�jack�, �lillie�, �neil�]")] + [InlineData(false, "'Donkey' CONTAINS [�aDonkeya�, �Alpaca�, �Zebra�]")] + [InlineData(true, "[�Donkey�, �Alpaca�, �Zebra�] CONTAINS 'Donkey'")] + [InlineData(false, "[�Donkey�, �Alpaca�, �Zebra�] CONTAINS 'Betty'")] + [InlineData(false, "'Donkey' NOT_CONTAINS [�Donkey�, �Alpaca�, �Zebra�]")] + [InlineData(false, "'Donkey' not_contains [�Donkey�, �Alpaca�, �Zebra�]")] [InlineData(true, "'' == NULL")] [InlineData(true, "'Lillie' == 'lillie '")] [InlineData(true, "'Lillie' == 'lillie'")] diff --git a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs index 01dd73525..9162f5a82 100644 --- a/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs +++ b/tests/UnitTests/ConditionsResolver.Tests/Resolver/ConditionalTests.cs @@ -15,10 +15,10 @@ */ using System; -using Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Resolver; +using Monai.Deploy.WorkflowManager.ConditionsResolver.Resovler; using Xunit; -namespace Monai.Deploy.WorkflowManager.Common.ConditionsResolver.Tests.Resolver +namespace Monai.Deploy.WorkflowManager.ConditionsResolver.Tests.Resolver { public class ConditionalTests { @@ -27,7 +27,7 @@ public class ConditionalTests [InlineData("{{context.executions.body_part_identifier.result.body_part}}", "leg", "{{context.executions.body_part_identifier.result.body_part}} == 'leg'")] [InlineData("F", "F", "'F' == 'F'")] [InlineData("F", "{{context.dicom.tags[('0010','0040')]}}", "'F' == {{context.dicom.tags[('0010','0040')]}}")] - [InlineData("{{context.dicom.tags[('0010','0040')]}}", "“Donkey”, “Alpaca”, “Zebra”", "{{context.dicom.tags[('0010','0040')]}} CONTAINS [“Donkey”, “Alpaca”, “Zebra”]")] + [InlineData("{{context.dicom.tags[('0010','0040')]}}", "�Donkey�, �Alpaca�, �Zebra�", "{{context.dicom.tags[('0010','0040')]}} CONTAINS [�Donkey�, �Alpaca�, �Zebra�]")] public void Conditional_CreatesAndEvaluates(string expectedLeftParam, string expectedRightParam, string input) { var conditional = Conditional.Create(input); diff --git a/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs b/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs index 25103a74e..9813526ee 100644 --- a/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs +++ b/tests/UnitTests/Database.Tests/TaskExecutionStatsRepositoryTests.cs @@ -47,8 +47,10 @@ public TaskExecutionStatsRepositoryTests() _dbase = new Mock(); _collection = new Mock>(); - var IndexDoc = new BsonDocument(new Dictionary { { "name", "ExecutionStatsIndex" } }); - var indexList = Task.FromResult(new List() { IndexDoc }); + var indexDoc = new BsonDocument(new Dictionary { { "name", "ExecutionStatsIndex" } }); + var indexList = Task.FromResult(new List { indexDoc }); + + Assert.NotNull(indexList); var cursor = new Mock>(); @@ -63,7 +65,7 @@ public TaskExecutionStatsRepositoryTests() public void ExecutionStats_Should_Contain_All_Fields() { const string workflowId = nameof(workflowId); - const string WorkflowInstanceId = nameof(WorkflowInstanceId); + const string workflowInstanceId = nameof(workflowInstanceId); const string correlationId = nameof(correlationId); const string taskId = nameof(taskId); const string executionId = nameof(executionId); @@ -73,7 +75,7 @@ public void ExecutionStats_Should_Contain_All_Fields() { TaskId = taskId, ExecutionId = executionId, - WorkflowInstanceId = WorkflowInstanceId + WorkflowInstanceId = workflowInstanceId }; testObj.TaskStartTime = started; @@ -82,7 +84,7 @@ public void ExecutionStats_Should_Contain_All_Fields() Assert.Equal(started, output.StartedUTC); Assert.Equal(executionId, output.ExecutionId); - Assert.Equal(WorkflowInstanceId, output.WorkflowInstanceId); + Assert.Equal(workflowInstanceId, output.WorkflowInstanceId); Assert.Equal(workflowId, output.WorkflowId); Assert.Equal(correlationId, output.CorrelationId); Assert.Equal(taskId, output.TaskId); @@ -255,24 +257,24 @@ public async Task ExecutionStats_Get_Stats_Should_Filter() public void ExecutionStats_New_TaskCancellationEvent_Should_initialize() { var collerationId = "colleration"; - var WorkflowInstanceId = "WorkflowInstanceId"; - var TaskId = "TaskId"; - var ExecutionId = "ExecutionId"; + var workflowInstanceId = "WorkflowInstanceId"; + var taskId = "TaskId"; + var executionId = "ExecutionId"; var workflowId = "workflowId"; var stats = new ExecutionStats( new TaskCancellationEvent { - WorkflowInstanceId = WorkflowInstanceId, - TaskId = TaskId, - ExecutionId = ExecutionId, + WorkflowInstanceId = workflowInstanceId, + TaskId = taskId, + ExecutionId = executionId, }, workflowId, collerationId); Assert.Equal(collerationId, stats.CorrelationId); - Assert.Equal(WorkflowInstanceId, stats.WorkflowInstanceId); - Assert.Equal(TaskId, stats.TaskId); - Assert.Equal(ExecutionId, stats.ExecutionId); + Assert.Equal(workflowInstanceId, stats.WorkflowInstanceId); + Assert.Equal(taskId, stats.TaskId); + Assert.Equal(executionId, stats.ExecutionId); Assert.Equal(TaskExecutionStatus.Failed.ToString(), stats.Status); } diff --git a/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs b/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs index cee281576..e3659da61 100644 --- a/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs +++ b/tests/UnitTests/PayloadListener.Tests/Services/EventPayloadRecieverServiceTests.cs @@ -24,9 +24,9 @@ using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Interfaces; using Monai.Deploy.WorkflowManager.Common.Configuration; using Monai.Deploy.WorkflowManager.Common.Contracts.Models; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Services; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; using Monai.Deploy.WorkflowManager.Common.WorkfowExecuter.Services; +using Monai.Deploy.WorkflowManager.PayloadListener.Services; +using Monai.Deploy.WorkflowManager.PayloadListener.Validators; using Moq; using NUnit.Framework; diff --git a/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs b/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs index 3edab7a06..127c36d10 100644 --- a/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs +++ b/tests/UnitTests/PayloadListener.Tests/Validators/EventPayloadValidatorTests.cs @@ -18,7 +18,7 @@ using System.Collections.Generic; using Microsoft.Extensions.Logging; using Monai.Deploy.Messaging.Events; -using Monai.Deploy.WorkflowManager.Common.PayloadListener.Validators; +using Monai.Deploy.WorkflowManager.PayloadListener.Validators; using Moq; using NUnit.Framework; diff --git a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs index 93e8037e0..91c45e9ec 100644 --- a/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs +++ b/tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTestBase.cs @@ -36,6 +36,7 @@ public class ArgoPluginTestBase protected readonly Mock KubernetesClient; protected readonly Mock TaskDispatchEventService; protected readonly IOptions Options; + // ReSharper disable once InconsistentNaming protected readonly Mock K8sCoreOperations; protected readonly Mock ArgoProvider; protected readonly int ArgoTtlStatergySeconds = 360; diff --git a/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs b/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs index 658e5319c..bad008dbb 100644 --- a/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs +++ b/tests/UnitTests/TaskManager.Tests/TaskManagerTest.cs @@ -124,6 +124,7 @@ public override Task> RetrieveMetadata(CancellationTo public class TaskManagerTest { + // ReSharper disable once InconsistentNaming private const string NOT_ARGO = "notArgo"; private readonly Mock> _logger; @@ -615,7 +616,7 @@ public async Task TaskManager_TaskCallbackEvent_ExceptionGettingStatus() await Task.Run(() => messageReceivedCallback(CreateMessageReceivedEventArgs(taskDispatchEventMessage))).ConfigureAwait(false); }); - var TaskCallbackEventMessage = GenerateTaskCallbackEvent(taskDispatchEventMessage); + var taskCallbackEventMessage = GenerateTaskCallbackEvent(taskDispatchEventMessage); _messageBrokerSubscriberService.Setup( p => p.SubscribeAsync(It.Is(p => p.Equals(_options.Value.Messaging.Topics.TaskCallbackRequest, StringComparison.OrdinalIgnoreCase)), It.IsAny(), @@ -627,7 +628,7 @@ public async Task TaskManager_TaskCallbackEvent_ExceptionGettingStatus() resetEvent.Reset(2); await Task.Run(() => { - messageReceivedCallback(CreateMessageReceivedEventArgs(TaskCallbackEventMessage)); + messageReceivedCallback(CreateMessageReceivedEventArgs(taskCallbackEventMessage)); }).ConfigureAwait(false); }); @@ -645,7 +646,7 @@ await Task.Run(() => _testRunnerCallback.Verify(p => p.GenerateGetStatusResult(), Times.Once()); _messageBrokerSubscriberService.Verify(p => p.Acknowledge(It.Is(m => m.MessageId == taskDispatchEventMessage.MessageId)), Times.Once()); _messageBrokerPublisherService.Verify(p => p.Publish(It.Is(m => m == _options.Value.Messaging.Topics.TaskUpdateRequest), It.IsAny()), Times.Exactly(2)); - _messageBrokerSubscriberService.Verify(p => p.Reject(It.Is(m => m.MessageId == TaskCallbackEventMessage.MessageId), It.Is(b => !b)), Times.Once()); + _messageBrokerSubscriberService.Verify(p => p.Reject(It.Is(m => m.MessageId == taskCallbackEventMessage.MessageId), It.Is(b => !b)), Times.Once()); } [Fact(DisplayName = "Task Manager - TaskCallbackEvent completes workflow")] @@ -773,7 +774,7 @@ await Task.Run(() => }).ConfigureAwait(false); }); - var TaskCallbackEventMessage = GenerateTaskCallbackEvent(taskDispatchEventMessage); + var taskCallbackEventMessage = GenerateTaskCallbackEvent(taskDispatchEventMessage); _messageBrokerSubscriberService.Setup( p => p.SubscribeAsync(It.Is(p => p.Equals(_options.Value.Messaging.Topics.TaskCallbackRequest, StringComparison.OrdinalIgnoreCase)), It.IsAny(), @@ -785,7 +786,7 @@ await Task.Run(() => resetEvent.Reset(2); await Task.Run(() => { - messageReceivedCallback(CreateMessageReceivedEventArgs(TaskCallbackEventMessage)); + messageReceivedCallback(CreateMessageReceivedEventArgs(taskCallbackEventMessage)); }).ConfigureAwait(false); }); _messageBrokerSubscriberService @@ -810,7 +811,7 @@ await Task.Run(() => _testRunnerCallback.Verify(p => p.GenerateExecuteTaskResult(), Times.Once()); _testRunnerCallback.Verify(p => p.GenerateGetStatusResult(), Times.Once()); _messageBrokerSubscriberService.Verify(p => p.Acknowledge(It.Is(m => m.MessageId == taskDispatchEventMessage.MessageId)), Times.Once()); - _messageBrokerSubscriberService.Verify(p => p.Acknowledge(It.Is(m => m.MessageId == TaskCallbackEventMessage.MessageId)), Times.Once()); + _messageBrokerSubscriberService.Verify(p => p.Acknowledge(It.Is(m => m.MessageId == taskCallbackEventMessage.MessageId)), Times.Once()); _messageBrokerPublisherService.Verify(p => p.Publish(It.Is(m => m == _options.Value.Messaging.Topics.TaskUpdateRequest), It.IsAny()), Times.Exactly(2)); } diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs index 53ed0a088..3a6f1ca50 100644 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/TaskExecutionStatsControllerTests.cs @@ -126,16 +126,16 @@ public async Task GetStatsAsync_Pass_All_Arguments_To_GetStatsAsync_In_Repo() { var startTime = new DateTime(2023, 4, 4); var endTime = new DateTime(2023, 4, 5); - var PageNumber = 15; - var PageSize = 9; + const int pageNumber = 15; + const int pageSize = 9; - var result = await StatsController.GetStatsAsync(new TimeFilter { StartTime = startTime, EndTime = endTime, PageNumber = PageNumber, PageSize = PageSize }, "workflow", "task"); + var result = await StatsController.GetStatsAsync(new TimeFilter { StartTime = startTime, EndTime = endTime, PageNumber = pageNumber, PageSize = pageSize }, "workflow", "task"); _repo.Verify(v => v.GetStatsAsync( It.Is(d => d.Equals(startTime)), It.Is(d => d.Equals(endTime)), - It.Is(i => i.Equals(PageSize)), - It.Is(i => i.Equals(PageNumber)), + It.Is(i => i.Equals(pageSize)), + It.Is(i => i.Equals(pageNumber)), It.Is(s => s.Equals("workflow")), It.Is(s => s.Equals("task"))) );