using LCU.Library.Internal.DispatcherModels.Enums; using LCU.Api.Internal.DispatcherSharedLib.BuilderServices; using LCU.Api.Internal.DispatcherSharedLib.Configurations; namespace LCU.Api.Internal.DispatcherTests.ServiceTests.DispatcherOperationServices; public class ActionBuilderServiceTest { private readonly ActionBuilderService _actionBuilderService; private readonly FileOperationsApiConfiguration _fileOperationsApiConfiguration; private readonly FtpApiConfiguration _ftpApiConfiguration; private readonly NotificationApiConfiguration _notificationApiConfiguration; private readonly ArchiverApiConfiguration _archiverApiConfiguration; private readonly DocumentIngestorApiConfiguration _documentIngestorApiConfiguration; private readonly DocumentTypeCleanupApiConfiguration _documentTypeCleanupApiConfiguration; private readonly HistoricalDocumentIngestorApiConfiguration _historicalDocumentIngestorApiConfiguration; private readonly RemoteDepositCaptureApiConfiguration _remoteDepositCaptureApiConfiguration; private readonly DataCleanUpApiConfiguration _dataCleanUpApiConfiguration; private readonly NoticeProcessorApiConfiguration _noticeProcessorApiConfiguration; private readonly MomBotApiConfiguration _momBotApiConfiguration; private readonly BlendApiConfiguration _blendApiConfiguration; private readonly DialerApiConfiguration _dialerApiConfiguration; private readonly IncentiveManagerConfiguration _incentiveManagerConfiguration; private readonly FileUpdaterApiConfiguration _fileUpdaterApiConfiguration; private readonly TemenosNotificationApiConfiguration _temenosNotificationApiConfiguration; private readonly RealTimeAlertsApiConfiguration _realTimeAlertsApiConfiguration; private readonly RepoApiConfiguration _repoApiConfiguration; private readonly MemberPreferencesApiConfiguration _memberPreferencesApiConfiguration; public ActionBuilderServiceTest() { _momBotApiConfiguration = new MomBotApiConfiguration { Url = "https://Test", QueueMomBotEndpoint = "/QueueMomBotEndpoint" }; _fileOperationsApiConfiguration = new FileOperationsApiConfiguration { Url = "https://Test", MoveFileEndpoint = "/MoveFile", CopyFileEndpoint = "/CopyFile", ModifyFileEndpoint = "/ModifyFile", RenameFileEndpoint = "/RenameFile", DeleteFileEndpoint = "/DeleteFile", ZipDirectoryEndpoint = "/ZipDirectory", CreateDirectoryEndpoint = "/CreateDirectory", RenameDirectoryEndpoint = "/RenameDirectory", UnzipFileEndpoint = "/UnzipFile", EncryptFileDataEndpoint = "/EncryptFileData", DecryptFileDataEndpoint = "/DecryptFileData", UnzipPasswordProtectedFileEndpoint = "/UnzipPasswordProtectedFile", DeleteDirectoryEndpoint = "/DeleteDirectory", FileValidationEndpoint = "/ValidateFile", ExtractIndexFileDataEndpoint = "/ExtractIndexFileData", DeleteEmptyDirectoryEndpoint = "/DeleteEmptyDirectory" }; _ftpApiConfiguration = new FtpApiConfiguration { Url = "https://Test", SftpFileEndpoint = "/SftpFileEndpoint", QueueSftpDynamicFileEndpoint = "/QueueSftpDynamicFileEndpoint", QueueSftpUploadFileEndpoint = "/QueueSftpUploadFileEndpoint", QueueSftpDownloadFileEndpoint = "/QueueSftpDownloadFileEndpoint" }; _notificationApiConfiguration = new NotificationApiConfiguration { Url = "https://Test", EmailEndpoint = "/EmailEndpoint", }; _archiverApiConfiguration = new ArchiverApiConfiguration { Url = "https://Test", QueueArchiverEndpoint = "/QueueArchiverEndpoint" }; _documentIngestorApiConfiguration = new DocumentIngestorApiConfiguration { Url = "https://Test", QueueDocumentIngestorEndpoint = "/QueueDocumentIngestorEndpoint", QueueDocumentBatchIngestionEndpoint = "/QueueDocumentBatchIngestionEndpoint", QueueIngestorPdfPartitionerEndpoint = "/QueueIngestorPdfPartitionerEndpoint", QueueMemberDocumentNotifierEndpoint = "/QueueMemberDocumentNotifierEndpoint", QueueIngestionFolderCleanUpEndpoint = "/QueueIngestionFolderCleanUpEndpoint" }; _documentTypeCleanupApiConfiguration = new DocumentTypeCleanupApiConfiguration { Url = "https://Test", QueueDocumentRetentionCleanupEndpoint = "/QueueDocumentRetentionCleanupEndpoint" }; _historicalDocumentIngestorApiConfiguration = new HistoricalDocumentIngestorApiConfiguration { Url = "https://Test/Historical", QueueDocumentIngestorEndpoint = "/QueueDocumentIngestorEndpoint", QueueDocumentBatchIngestionEndpoint = "/QueueDocumentBatchIngestionEndpoint", QueueIngestorPdfPartitionerEndpoint = "/QueueIngestorPdfPartitionerEndpoint", }; _remoteDepositCaptureApiConfiguration = new RemoteDepositCaptureApiConfiguration { Url = "https://Test", QueueRemoteDepositCaptureXmlEndpoint = "/QueueRemoteDepositCaptureXmlEndpoint" }; _dataCleanUpApiConfiguration = new DataCleanUpApiConfiguration { Url = "https://Test", QueueDataCleanUpEndpoint = "/QueueDataCleanUpEndpoint", QueueUpdatePersonForCheckHoldsEndpoint = "/QueueUpdatePersonForCheckHoldsEndpoint", QueueNcoaUpdateEndpoint = "/QueueNcoaUpdateRequestEndpoint", QueueIndirectFundingEndpoint = "/QueueIndirectFundingEndpoint" }; _noticeProcessorApiConfiguration = new NoticeProcessorApiConfiguration { Url = "https://Test", QueueExtractEndpoint = "/QueueExtractEndpoint", QueueProcessingEmailSummaryEndpoint = "/QueueProcessingEmailSummaryEndpoint" }; _blendApiConfiguration = new BlendApiConfiguration { Url = "https://Test", QueueDataImportEndpoint = "/QueueDataImportEndpoint" }; _dialerApiConfiguration = new DialerApiConfiguration { Url = "https://Test", QueueDialerUploadEndpoint = "/QueueDialerUploadEndpoint", QueueUploadDoNotCallEndpoint = "/QueueUploadDoNotCallEndpoint", QueueCreateVoAppsCampaignEndpoint = "/QueueCreateVoAppsCampaignEndpoint", QueueUploadVoAppsCampaignResultsEndpoint = "/QueueUploadVoAppsCampaignResultsEndpoint" }; _incentiveManagerConfiguration = new IncentiveManagerConfiguration { Url = "https://Test", QueueCreditCardImportEndpoint = "/QueueCreditCardImportEndpoint", QueueVehicleImportEndpoint = "/QueueVehicleImportEndpoint" }; _fileUpdaterApiConfiguration = new FileUpdaterApiConfiguration { Url = "https://Test", QueueIndexFieldMapper = "/QueueIndexFieldMapper" }; _temenosNotificationApiConfiguration = new TemenosNotificationApiConfiguration { Url = "https://Test", QueueDealerAchNotification = "/QueueDealerAchNotification" }; _realTimeAlertsApiConfiguration = new RealTimeAlertsApiConfiguration { Url = "https://Test", QueueInitiateRealTimeAlertsEndpoint = "/QueueInitiateRealTimeAlertsEndpoint", QueueErroredTransactionCleanUpEndpoint = "/QueueErroredTransactionCleanUpEndpoint" }; _repoApiConfiguration = new RepoApiConfiguration { Url = "https://Test", AccountBatchEndpoint = "/api/RepoBatchProcessing/QueueRepoBatchRequest" }; _memberPreferencesApiConfiguration = new MemberPreferencesApiConfiguration { Url = "https://Test", QueueDNAAuditRequestEndpoint = "/api/QueueDnaAuditProcess" }; _actionBuilderService = new ActionBuilderService(_fileOperationsApiConfiguration, _ftpApiConfiguration, _notificationApiConfiguration, _archiverApiConfiguration, _documentIngestorApiConfiguration, _documentTypeCleanupApiConfiguration, _historicalDocumentIngestorApiConfiguration, _remoteDepositCaptureApiConfiguration, _dataCleanUpApiConfiguration, _noticeProcessorApiConfiguration, _momBotApiConfiguration, _blendApiConfiguration, _dialerApiConfiguration, _incentiveManagerConfiguration, _fileUpdaterApiConfiguration, _temenosNotificationApiConfiguration, _realTimeAlertsApiConfiguration, _repoApiConfiguration, _memberPreferencesApiConfiguration); } internal void BuildActionService_Test(ActionType actionType, string url) { var actionService = _actionBuilderService.BuildAction(actionType); var type = actionService.GetType(); var workItem = new WorkItem { ActionType = actionType }; workItem = actionService.AddUrlAndHttpMethod(workItem); Assert.Equal(url, workItem.Url); Assert.Equal(actionType, workItem.ActionType); } #region FileOperationsApi [Fact] public void BuildActionService_MoveFile() { BuildActionService_Test(ActionType.MoveFile, "https://Test/MoveFile"); } [Fact] public void BuildActionService_CopyFile() { BuildActionService_Test(ActionType.CopyFile, "https://Test/CopyFile"); } [Fact] public void BuildActionService_ModifyFile() { BuildActionService_Test(ActionType.ModifyFile, "https://Test/ModifyFile"); } [Fact] public void BuildActionService_RenameFile() { BuildActionService_Test(ActionType.RenameFile, "https://Test/RenameFile"); } [Fact] public void BuildActionService_DeleteFile() { BuildActionService_Test(ActionType.DeleteFile, "https://Test/DeleteFile"); } [Fact] public void BuildActionService_ZipDirectory() { BuildActionService_Test(ActionType.ZipDirectory, "https://Test/ZipDirectory"); } [Fact] public void BuildActionService_CreateDirectory() { BuildActionService_Test(ActionType.CreateDirectory, "https://Test/CreateDirectory"); } [Fact] public void BuildActionService_RenameDirectory() { BuildActionService_Test(ActionType.RenameDirectory, "https://Test/RenameDirectory"); } [Fact] public void BuildActionService_UnzipFile() { BuildActionService_Test(ActionType.UnzipFile, "https://Test/UnzipFile"); } [Fact] public void BuildActionService_EncryptFileData() { BuildActionService_Test(ActionType.EncryptFileData, "https://Test/EncryptFileData"); } [Fact] public void BuildActionService_DecryptFileData() { BuildActionService_Test(ActionType.DecryptFileData, "https://Test/DecryptFileData"); } [Fact] public void BuildActionService_UnzipPasswordProtectedFile() { BuildActionService_Test(ActionType.UnzipPasswordProtectedFile, "https://Test/UnzipPasswordProtectedFile"); } [Fact] public void BuildActionService_DeleteDirectory() { BuildActionService_Test(ActionType.DeleteDirectory, "https://Test/DeleteDirectory"); } [Fact] public void BuildActionService_ExtractIndexFileData() { BuildActionService_Test(ActionType.ExtractIndexFileData, "https://Test/ExtractIndexFileData"); } [Fact] public void BuildActionService_ValidateFile() { BuildActionService_Test(ActionType.ValidateFileRequest, "https://Test/ValidateFile"); } [Fact] public void BuildActionService_DeleteEmptyDirectory() { BuildActionService_Test(ActionType.DeleteEmptyDirectoryRequest, "https://Test/DeleteEmptyDirectory"); } #endregion FileOperationsApi #region FtpApi [Fact] public void BuildActionService_SftpUploadFile() { BuildActionService_Test(ActionType.SftpUploadFile, "https://Test/QueueSftpUploadFileEndpoint"); } [Fact] public void BuildActionService_SftpDownloadFile() { BuildActionService_Test(ActionType.SftpDownloadFile, "https://Test/QueueSftpDownloadFileEndpoint"); } #endregion FtpApi #region NotificationsApi [Fact] public void BuildActionService_Email() { BuildActionService_Test(ActionType.Email, "https://Test/EmailEndpoint"); } #endregion NotificationsApi #region ArchiverApi [Fact] public void BuildActionService_CoreArchiveRequest() { BuildActionService_Test(ActionType.CoreArchiveRequest, "https://Test/QueueArchiverEndpoint"); } #endregion ArchiverApi #region DocumentIngestorApi [Fact] public void BuildActionService_DocumentIngestor() { BuildActionService_Test(ActionType.DocumentIngestor, "https://Test/QueueDocumentIngestorEndpoint"); } [Fact] public void BuildActionService_DocumentBatchIngestion() { BuildActionService_Test(ActionType.DocumentBatchIngestion, "https://Test/QueueDocumentBatchIngestionEndpoint"); } [Fact] public void BuildActionService_IngestorPdfPartitioner() { BuildActionService_Test(ActionType.IngestorPdfPartitioner, "https://Test/QueueIngestorPdfPartitionerEndpoint"); } [Fact] public void BuildActionService_MemberDocumentNotification() { BuildActionService_Test(ActionType.MemberDocumentNotification, "https://Test/QueueMemberDocumentNotifierEndpoint"); } [Fact] public void BuildActionService_IngestionFolderCleanUp() { BuildActionService_Test(ActionType.IngestionFolderCleanUp, "https://Test/QueueIngestionFolderCleanUpEndpoint"); } #endregion DocumentIngestorApi #region DocumentTypeCleanupApi [Fact] public void BuildActionService_DocumentTypeCleanup() { BuildActionService_Test(ActionType.DocumentRetentionCleanupRequest, "https://Test/QueueDocumentRetentionCleanupEndpoint"); } #endregion DocumentTypeCleanupApi #region HistoricalDocumentIngestorApi [Fact] public void BuildActionService_HistoricalDocumentIngestor() { BuildActionService_Test(ActionType.HistoricalDocumentIngestor, "https://Test/Historical/QueueDocumentIngestorEndpoint"); } [Fact] public void BuildActionService_HistoricalDocumentBatchIngestion() { BuildActionService_Test(ActionType.HistoricalDocumentBatchIngestion, "https://Test/Historical/QueueDocumentBatchIngestionEndpoint"); } [Fact] public void BuildActionService_HistoricalIngestorPdfPartitioner() { BuildActionService_Test(ActionType.HistoricalIngestorPdfPartitioner, "https://Test/Historical/QueueIngestorPdfPartitionerEndpoint"); } #endregion HistoricalDocumentIngestorApi #region RemoteDepositCaptureApi [Fact] public void BuildActionService_RemoteDepositCaptureXmlFile() { BuildActionService_Test(ActionType.RemoteDepositCaptureXmlFile, "https://Test/QueueRemoteDepositCaptureXmlEndpoint"); } #endregion RemoteDepositCaptureApi #region DataCleanUpApi [Fact] public void BuildActionService_DataCleanUp() { BuildActionService_Test(ActionType.DataCleanUp, "https://Test/QueueDataCleanUpEndpoint"); } [Fact] public void BuildActionService_AtmPersonCheckHolds() { BuildActionService_Test(ActionType.AtmPersonCheckHolds, "https://Test/QueueUpdatePersonForCheckHoldsEndpoint"); } [Fact] public void BuildActionService_NcoaUpdateRequest() { BuildActionService_Test(ActionType.DataCleanupNcoaUpdateRequest, "https://Test/QueueNcoaUpdateRequestEndpoint"); } [Fact] public void BuildActionService_IndirectFundingRequest() { BuildActionService_Test(ActionType.DataCleanUpIndirectFundingRequest, "https://Test/QueueIndirectFundingEndpoint"); } #endregion DataCleanUpApi #region NoticeProcessorApi [Fact] public void BuildActionService_NoticeProcessorExtractRequest() { BuildActionService_Test(ActionType.NoticeProcessorExtractRequest, "https://Test/QueueExtractEndpoint"); } [Fact] public void BuildActionService_NoticeProcessorSummaryEmailRequest() { BuildActionService_Test(ActionType.NoticeProcessorSummaryEmailRequest, "https://Test/QueueProcessingEmailSummaryEndpoint"); } #endregion NoticeProcessorApi #region MomBotApi [Fact] public void BuildActionService_MomBotRequest() { BuildActionService_Test(ActionType.MomBotRequest, "https://Test/QueueMomBotEndpoint"); } #endregion MomBotApi #region BlendApi [Fact] public void BuildActionService_BlendApiDataSyncRequest() { BuildActionService_Test(ActionType.BlendDataRequest, "https://Test/QueueDataImportEndpoint"); } #endregion BlendApi #region DialerApi [Fact] public void BuildActionService_DialerUploadRequest() { BuildActionService_Test(ActionType.DialerUploadRequest, "https://Test/QueueDialerUploadEndpoint"); } [Fact] public void BuildActionService_UploadDoNotCallRequest() { BuildActionService_Test(ActionType.UploadDoNotCallRequest, "https://Test/QueueUploadDoNotCallEndpoint"); } [Fact] public void BuildActionService_CreateVoAppsCampaignsRequest() { BuildActionService_Test(ActionType.CreateVoAppsCampaignsRequest, "https://Test/QueueCreateVoAppsCampaignEndpoint"); } #endregion DialerApi #region IncentiveApi [Fact] public void BuildActionService_ImportCreditCardSalesRequest() { BuildActionService_Test(ActionType.ImportCreditCardSalesRequest, "https://Test/QueueCreditCardImportEndpoint"); } [Fact] public void BuildActionService_ImportIndirectVehicleSalesRequest() { BuildActionService_Test(ActionType.ImportIndirectVehicleSalesRequest, "https://Test/QueueVehicleImportEndpoint"); } #endregion #region FileUpdaterApi [Fact] public void BuildActionService_IndexFieldMapperRequest() { BuildActionService_Test(ActionType.IndexFieldMapperRequest, "https://Test/QueueIndexFieldMapper"); } #endregion FileUpdaterApi #region TemenosNotificationApi [Fact] public void BuildActionService_DealerAchNotificationRequest() { BuildActionService_Test(ActionType.DealerAchNotificationRequest, "https://Test/QueueDealerAchNotification"); } #endregion TemenosNotificationApi #region RealTimeAlertsApi [Fact] public void BuildActionService_InitiateRealTimeAlertsRequest() { BuildActionService_Test(ActionType.InitiateRealTimeAlertsRequest, "https://Test/QueueInitiateRealTimeAlertsEndpoint"); } [Fact] public void BuildActionService_InitiateRealTimeAlertsErroredProcessingRequest() { BuildActionService_Test(ActionType.InitiateRealTimeAlertsErroredProcessingRequest, "https://Test/QueueErroredTransactionCleanUpEndpoint"); } #endregion RealTimeAlertsApi #region RepoApi [Fact] public void BuildActionService_RepoBatchRequest() { BuildActionService_Test(ActionType.RepoBatchProcessRequest, "https://Test/api/RepoBatchProcessing/QueueRepoBatchRequest"); } #endregion RepoApi #region MemberPreferences [Fact] public void BuildActionService_MemberPreferencesDnaAuditRequest() { BuildActionService_Test(ActionType.MemberPreferencesDNAAuditRequest, "https://Test/api/QueueDnaAuditProcess"); } #endregion MemberPreferences }