Files
2026-04-22 09:52:00 -05:00

546 lines
20 KiB
C#

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
}