//Would be revisiting to modify the actual way of call method. public void TestTransactionHistoryRepositoryTest_Success() { // Arrange string terminalId = "LK429486"; string transactionType = "Credit"; MockTransactionHistoryRepository mockTransactionHistoryRepository = new MockTransactionHistoryRepository(); ApiResult <GenericPaginationResponse <TransactionHistory> > expectedResult = mockTransactionHistoryRepository.GetMockData(transactionType); PaginationTransactionHistory page = mockTransactionHistoryRepository.GetPagination(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); IOptions <DataContext> optionsAccessor = Substitute.For <IOptions <DataContext> >(); IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>(); ITransactionHistoryRepository mockRepo = Substitute.For <ITransactionHistoryRepository>(); mockRepo.GetTransactionHistoryAsync(terminalId, page).ReturnsForAnyArgs(expectedResult.Result); // Act var terminalList = mockRepo.GetTransactionHistoryAsync(terminalId, page).Result; var actualRecord = (IList <TransactionHistory>)terminalList.ReturnedRecords; string merchInfo = actualRecord.Where(x => x.REQ_TRAN_TYPE == transactionType).FirstOrDefault().REQ_AMT; //// Assert Assert.Equal(((IList <TransactionHistory>)actualRecord).Count, 1); Assert.Equal(merchInfo, "589587"); }
public async Task TransactionHistoryApiTest_GetAnException() { // Arrange string terminalId = "LK429486"; string transactionType = "Credit"; MockTransactionHistoryRepository mockTransactionHistoryRepository = new MockTransactionHistoryRepository(); ApiResult <GenericPaginationResponse <TransactionHistory> > expectedResult = mockTransactionHistoryRepository.GetMockData(transactionType); PaginationTransactionHistory page = mockTransactionHistoryRepository.GetPagination(); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); ITransactionHistoryRepository mockRepo = Substitute.For <ITransactionHistoryRepository>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); ITransactionHistoryApi terminalListApi = Substitute.For <ITransactionHistoryApi>(); terminalListApi.WhenForAnyArgs(x => x.GetTransactionHistoryAsync(Arg.Any <string>(), Arg.Any <PaginationTransactionHistory>())).DoNotCallBase(); mockRepo.GetTransactionHistoryAsync(terminalId, page).Throws(new Exception()); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); terminalListApi = new TransactionHistoryApi(optionsAccessor, mockRepo, loggingFacade); // Assert await Assert.ThrowsAsync <Exception>(() => terminalListApi.GetTransactionHistoryAsync(terminalId, page)); }
public async Task <ApiResult <GenericPaginationResponse <TransactionHistory> > > GetTransactionHistoryAsync(string terminalID, PaginationTransactionHistory Page) { await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting Transaction History API Service for TerminalID - " + terminalID, "TransactionHistoryApi.cs", "TransactionHistoryApi"), CancellationToken.None); ApiResult <GenericPaginationResponse <TransactionHistory> > response = new ApiResult <GenericPaginationResponse <TransactionHistory> >(); try { response.Result = await _transactionHistoryRepository.GetTransactionHistoryAsync(terminalID, Page); await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Fetched the Transaction History resultset from DB for TerminalID - " + terminalID, "TransactionHistoryApi.cs", "GetTransactionHistoryAsync"), CancellationToken.None); } catch (Exception) { throw; } return(response); }