public async Task TerminalListApiTest_GetAnException() { // Arrange int TerminalNbr = 589587; MockTerminalListRepository mockTerminalListRepository = new MockTerminalListRepository(); ApiResult <GenericPaginationResponse <Terminal> > expectedResult = mockTerminalListRepository.GetMockData(TerminalNbr); PaginationTerminal page = mockTerminalListRepository.GetPagination(); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); ITerminalListRepository mockRepo = Substitute.For <ITerminalListRepository>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); ITerminalListApi terminalListApi = Substitute.For <ITerminalListApi>(); terminalListApi.WhenForAnyArgs(x => x.GetTerminalListAsync(Arg.Any <int>(), Arg.Any <PaginationTerminal>())).DoNotCallBase(); mockRepo.GetTerminalListAsync(TerminalNbr, page).Throws(new Exception()); terminalListApi = new TerminalListApi(optionsAccessor, mockRepo, loggingFacade); // Act var terminalList = await terminalListApi.GetTerminalListAsync(TerminalNbr, page); // Assert Assert.Equal(((IList <string>)terminalList.ErrorMessages).First(), "InternalServerError"); }
public async Task TerminalListApiTest_GetAnException_Old() { // Arrange string TerminalNbr = "589587"; MockTerminalListRepository mockTerminalListRepository = new MockTerminalListRepository(); ApiResult <ICollection <Terminal> > expectedResult = mockTerminalListRepository.GetMockData(TerminalNbr); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); ITerminalListRepository mockRepo = Substitute.For <ITerminalListRepository>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); ITerminalListApi terminalListApi = Substitute.For <ITerminalListApi>(); terminalListApi.WhenForAnyArgs(x => x.GetTerminalListAsync(Arg.Any <int>())).DoNotCallBase(); mockRepo.GetTerminalListAsync(Convert.ToInt32(TerminalNbr)).Throws(new Exception()); terminalListApi = new TerminalListApi(optionsAccessor, mockRepo, loggingFacade); //Assert await Assert.ThrowsAsync <Exception>(() => terminalListApi.GetTerminalListAsync(Convert.ToInt32(TerminalNbr))); }
/// <summary> /// /// </summary> public ValuesController(IOptions <Settings> optionsAccessor, ILoggingFacade loggingFacade) { _loggingFacade = loggingFacade; _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting ValuesController", "ValuesController.cs", "ValuesController"), CancellationToken.None); this._optionsAccessor = optionsAccessor; }
public async Task BankingInfoControllerTest_GetAnException() { //Arrange MockBankingInfoRepository repository = new MockBankingInfoRepository(); var expectedResult = repository.GetMockBankingInfo(); IDistributedCache _cache = FakeCache(); string lid = "756122"; IBankingInfoRepository mockRepo = Substitute.For <IBankingInfoRepository>(); IBankingApi dAPI = Substitute.For <IBankingApi>(); ILoggingFacade fakeLogger = FakeLogger(); IOperation fakeOperation = FakeOperation(_cache); dAPI.GetBankingInfo(Helper.LIDTypes.TerminalNbr, lid).ThrowsForAnyArgs(new System.Exception()); BankingController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.GetBankingInfo(Helper.LIDTypes.TerminalNbr, "0"); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo); // Assert Assert.Equal(actualRecord.StatusCode, 500); Assert.Equal(actualRecord.Value, "Error occured"); }
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 TerminalDetailsControllerTest_TerminalSuccess() { // Arrange int lid = 589547; MockTerminalDetailsInfoRepository repository = new MockTerminalDetailsInfoRepository(); var expectedResult = repository.GetMockTerminalDetails(); ITerminalDetailsRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); ITerminalDetailsApi dAPI = Substitute.For <ITerminalDetailsApi>(); dAPI.GetTerminalDetails(lid).ReturnsForAnyArgs(expectedResult); TerminalDetailsController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.GetTerminalDetails(lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(((Wp.CIS.LynkSystems.Model.EAndPData)actualRecord), expectedResult.Result); }
//Would be revisiting to modify the actual way of call method. public void ContactListRepositoryTest_Success() { // Arrange LidTypeEnum LIDType = LidTypeEnum.CustomerNbr; string LID = ""; PaginationDemographics page = new PaginationDemographics(); int NameAddressID = 3301636; string ssn = "3425"; MockContactListRepository mockContactListRepository = new MockContactListRepository(); ApiResult <GenericPaginationResponse <Demographics> > expectedResult = mockContactListRepository.GetMockData(ssn); IOptions <DataContext> optionsAccessor = Substitute.For <IOptions <DataContext> >(); IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>(); IContactListRepository mockRepo = Substitute.For <IContactListRepository>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); mockRepo.GetContactListAsync(LIDType, LID, page).ReturnsForAnyArgs(expectedResult.Result); // Act var contactList = mockRepo.GetContactListAsync(LIDType, LID, page).Result; var actualRecord = (IList <Wp.CIS.LynkSystems.Model.Demographics>)contactList.ReturnedRecords; string contactInfo = actualRecord.Where(x => x.NameAddressID == NameAddressID).FirstOrDefault().Name; //// Assert Assert.Equal(((IList <Demographics>)actualRecord).Count, 3); Assert.Equal(contactInfo, "Golden Corral Corporation"); }
public void DashboardInfoControllerTest_GetDashBoardInfoSearch_ModelState_Invalid() { //Arrange int lid = 589547; MockDashboardInfoRepository repository = new MockDashboardInfoRepository(); var expectedResult = repository.GetMockTerminalData(); IDashboardInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); IDashboardInfoApi dAPI = Substitute.For <IDashboardInfoApi>(); fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <Wp.CIS.LynkSystems.Model.DashboardInfo>())).DoNotCallBase(); dAPI.GetDashboardSearchResults(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, lid).ReturnsForAnyArgs(expectedResult); DashboardInfoController controller = FakeController(dAPI, mockRepo, _cache, fakeOperation, fakeLogger); //Act controller.ModelState.AddModelError("key", "error message"); var dinfo = controller.GetDashBoardInfoSearch(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, Convert.ToString(lid)).Result; //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).StatusCode.ToString(), "400"); }
public async Task DashboardInfoControllerTest_MerchantAccountSuccess() { // Arrange int lid = 589547; MockDashboardInfoRepository repository = new MockDashboardInfoRepository(); var expectedResult = repository.GetMockMerchantData(); IDashboardInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); IDashboardInfoApi dAPI = Substitute.For <IDashboardInfoApi>(); dAPI.GetDashboardSearchResults(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.MerchantNbr, lid).ReturnsForAnyArgs(expectedResult); DashboardInfoController controller = FakeController(dAPI, mockRepo, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.Get(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.MerchantNbr, lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).DemographicsInfoCust, repository.custDemographicsList); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).DemographicsInfoMerch, repository.merchDemographicsList); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).DemographicsInfoTerm, null); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).MerchInfo.merchFedTaxID, "561005071"); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).MerchInfo.acquiringBank, "Citizens Trust Tier 1 Tier 2"); }
public async Task DashboardInfoControllerTerminalDetailsTest_GetAnException() { // Arrange MockDashboardInfoRepository repository = new MockDashboardInfoRepository(); var expectedResult = repository.GetMockTerminalDetails(); IDashboardInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IStringLocalizer <DashboardInfoController> localizer = Substitute.For <IStringLocalizer <DashboardInfoController> >(); string key = "GenericError"; string value = "Error occured"; var localizedString = new LocalizedString(key, value); localizer[Arg.Any <string>()].ReturnsForAnyArgs(localizedString); IOperation fakeOperation = FakeOperation(_cache); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); ILoggingFacade fakeLogger = FakeLogger(); IDashboardInfoApi dAPI = new DashboardInfoApi(appSettings, mockRepo); dAPI.GetTerminalDetails(0).ThrowsForAnyArgs(new System.Exception()); DashboardInfoController controller = FakeController(dAPI, mockRepo, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.GetTerminalDetails(0); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo); // Assert Assert.Equal(actualRecord.StatusCode, 500); Assert.Equal(actualRecord.Value, "Error occured"); }
public async Task MemoInfoControllerTerminalTest_GetAnException() { // Arrange IMemoInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); ILoggingFacade fakeLogger = FakeLogger(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IStringLocalizer <MemoInfoController> localizer = Substitute.For <IStringLocalizer <MemoInfoController> >(); IOperation fakeOperation = FakeOperation(_cache); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IMemoInfoApi dAPI = new MemoInfoApi(appSettings, mockRepo); dAPI.GetMemoResults(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, 0).ThrowsForAnyArgs(new System.Exception()); MemoInfoController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.Get(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, 0); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo); // Assert Assert.Equal(actualRecord.StatusCode, 500); Assert.Equal(actualRecord.Value, "Error occured"); }
//Would be revisiting to modify the actual way of call method. public void TestTerminalListRepositoryTest_Success_Old() { // Arrange string terminalNbr = "589587"; string tid = "LK429486"; MockTerminalListRepository mockTerminalListRepository = new MockTerminalListRepository(); ApiResult <ICollection <Terminal> > expectedResult = mockTerminalListRepository.GetMockData(terminalNbr); 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>(); ITerminalListRepository mockRepo = Substitute.For <ITerminalListRepository>(); mockRepo.GetTerminalListAsync(Convert.ToInt32(terminalNbr)).ReturnsForAnyArgs(expectedResult.Result); // Act var merchList = mockRepo.GetTerminalListAsync(Convert.ToInt32(terminalNbr)).Result; var actualRecord = (IList <Wp.CIS.LynkSystems.Model.Terminal>)merchList; string merchInfo = actualRecord.Where(x => x.TerminalID == tid).FirstOrDefault().Software; //// Assert Assert.Equal(((IList <Terminal>)actualRecord).Count, 1); Assert.Equal(merchInfo, "LSPR3271"); }
public void ContactListControllerTest_ModelState_Invalid() { //Arrange var page = GetContactListObject(); string ssn = "3425"; MockContactListRepository mockContactListRepository = new MockContactListRepository(); ApiResult <GenericPaginationResponse <Demographics> > expectedResult = mockContactListRepository.GetMockData(ssn); IStringLocalizer <ContactListController> localizer = Substitute.For <IStringLocalizer <ContactListController> >(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); IContactListApi contactListApi = Substitute.For <IContactListApi>(); IDistributedCache mockCache = FakeCache(); IOperation fakeOperation = Substitute.ForPartsOf <Operation>(mockCache); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); ContactListController controller = new ContactListController(mockCache, contactListApi, localizer, fakeOperation, loggingFacade); //Act controller.ModelState.AddModelError("key", "error message"); var result = controller.GetContactList(page); //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)result.Result).StatusCode.ToString(), "400"); }
//UnitTest for validating the Invalid Model Data. public void TerminalListController_ModelState_Invalid_Old() { //Arrange string TerminalNbr = "589587"; MockTerminalListRepository mockTerminalListRepository = new MockTerminalListRepository(); ApiResult <ICollection <Terminal> > expectedResult = mockTerminalListRepository.GetMockData(TerminalNbr); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IStringLocalizer <TerminalListController> localizer = Substitute.For <IStringLocalizer <TerminalListController> >(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); IDistributedCache mockCache = FakeCache(); ITerminalListApi terminalListApi = Substitute.For <ITerminalListApi>(); IOperation fakeOperation = Substitute.For <Operation>(mockCache); TerminalListController controller = new TerminalListController(mockCache, terminalListApi, localizer, fakeOperation, loggingFacade); //Act controller.ModelState.AddModelError("key", "error message"); var result = controller.GetTerminalList(Convert.ToInt32(TerminalNbr)); //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)result.Result).StatusCode.ToString(), "400"); }
public async Task ContactListApiTest_Exception() { // Arrange LidTypeEnum LIDType = LidTypeEnum.CustomerNbr; string LID = ""; PaginationDemographics page = new PaginationDemographics(); string ssn = "3425"; MockContactListRepository mockContactListRepository = new MockContactListRepository(); ApiResult <GenericPaginationResponse <Demographics> > expectedResult = mockContactListRepository.GetMockData(ssn); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); IContactListRepository mockRepo = Substitute.For <IContactListRepository>(); IContactListApi contactListApi = Substitute.For <IContactListApi>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); mockRepo.GetContactListAsync(LIDType, LID, page).Throws(new Exception()); contactListApi = new ContactListApi(optionsAccessor, mockRepo, loggingFacade); //Assert await Assert.ThrowsAsync <Exception>(() => contactListApi.GetContactListAsync(LIDType, LID, page)); }
public async Task BankingInfoControllerTest_Success() { //Arrange MockBankingInfoRepository repository = new MockBankingInfoRepository(); var expectedResult = repository.GetMockBankingInfo(); IDistributedCache _cache = FakeCache(); string lid = "756122"; IBankingInfoRepository mockRepo = Substitute.For <IBankingInfoRepository>(); IBankingApi dAPI = Substitute.For <IBankingApi>(); ILoggingFacade fakeLogger = FakeLogger(); IOperation fakeOperation = FakeOperation(_cache); dAPI.GetBankingInfo(Helper.LIDTypes.TerminalNbr, lid).ReturnsForAnyArgs(expectedResult); BankingController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); //Act var dinfo = await controller.GetBankingInfo(Helper.LIDTypes.TerminalNbr, lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; //Assert Assert.Equal(actualRecord, expectedResult.Result); }
//Mock API Call and unit test for the API call with returning mock RecentStatementList. public async Task RecentStatementControllerTest_Success() { // Arrange string merchantNbr = "542929801430265"; MockRecentStatementRepository mockRecentStatementRepository = new MockRecentStatementRepository(); ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > expectedResult = mockRecentStatementRepository.GetMockData(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ILoggingFacade fakeLogger = FakeLogger(); IRecentStatementRepository mockRepo = Substitute.For <IRecentStatementRepository>(); IStringLocalizer <RecentStatementController> localizer = Substitute.For <IStringLocalizer <RecentStatementController> >(); IRecentStatementApi mockRecentStatementApi = Substitute.For <IRecentStatementApi>(); IOperation fakeOperation = Substitute.For <Operation>(mockCache); fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> >())).DoNotCallBase(); fakeOperation.WhenForAnyArgs(x => x.AddCacheAsync(Arg.Any <string>(), Arg.Any <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> >())).DoNotCallBase(); RecentStatementController controller = new RecentStatementController(mockCache, mockRecentStatementApi, localizer, fakeOperation, fakeLogger); mockRecentStatementApi.GetRecentStatementAsync(merchantNbr).ReturnsForAnyArgs(expectedResult); // Act var recentStatementList = await controller.GetRecentStatement(merchantNbr); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)recentStatementList).Value; // Assert Assert.Equal(((IList <Wp.CIS.LynkSystems.Model.RecentStatement>)actualRecord).Count, 1); Assert.Equal(actualRecord, expectedResult.Result); }
//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 void RecentStatementControllerTest_ModelState_Invalid() { //Arrange string merchantNbr = "542929801430265"; MockRecentStatementRepository mockRecentStatementRepository = new MockRecentStatementRepository(); ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > expectedResult = mockRecentStatementRepository.GetMockData(); IStringLocalizer <RecentStatementController> localizer = Substitute.For <IStringLocalizer <RecentStatementController> >(); IRecentStatementApi recentStatementApi = Substitute.For <IRecentStatementApi>(); IDistributedCache mockCache = FakeCache(); ILoggingFacade fakeLogger = FakeLogger(); IOperation fakeOperation = Substitute.ForPartsOf <Operation>(mockCache); RecentStatementController controller = new RecentStatementController(mockCache, recentStatementApi, localizer, fakeOperation, fakeLogger); //Act controller.ModelState.AddModelError("key", "error message"); var result = controller.GetRecentStatement(merchantNbr); //Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)result.Result).StatusCode.ToString(), "400"); }
private RecentStatementController FakeController(IDistributedCache cache, IRecentStatementApi recentStatementApi, IStringLocalizer <RecentStatementController> localizer, IOperation operation, ILoggingFacade fakeLogger) { return(new RecentStatementController(cache, recentStatementApi, localizer, operation, fakeLogger)); }
public async Task RecentStatementControllerTest_RetrievalFromCache_AvailableInCache() { // Arrange string merchantNbr = "542929801430265"; string key = merchantNbr; MockRecentStatementRepository repository = new MockRecentStatementRepository(); var expectedResult = repository.GetMockData(); IDistributedCache mockCache = FakeCache(); ILoggingFacade fakeLogger = FakeLogger(); IRecentStatementRepository mockRepo = Substitute.For <IRecentStatementRepository>(); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IRecentStatementApi dAPI = new RecentStatementApi(appSettings, mockRepo); var localizer = new MockStringLocalizer <RecentStatementController>(); localizer[0] = new LocalizedString("GenericError", "Error occured"); IOperation fakeOperation = Substitute.For <Operation>(mockCache); fakeOperation.RetrieveCache(key, Arg.Any <List <Wp.CIS.LynkSystems.Model.RecentStatement> >()).ReturnsForAnyArgs(expectedResult.Result); //since no data in cache, now call the controller. The controller retrieves data and also adds to cache RecentStatementController controller = new RecentStatementController(mockCache, dAPI, localizer, fakeOperation, fakeLogger); // Act //Retrieve the data from controller and also check for the data in the cache. var merchantNumber = await controller.GetRecentStatement(merchantNbr); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)merchantNumber).Value; // Assert // Check the retrieved data // Make sure the data retrieved from controller is same as the data from the cache Assert.Equal(JsonConvert.SerializeObject(actualRecord), JsonConvert.SerializeObject(expectedResult.Result)); }
public async Task DashboardInfoControllerTest_GetDashBoardInfoSearch_GetAnException() { // Arrange MockDashboardInfoRepository repository = new MockDashboardInfoRepository(); var expectedResult = repository.GetMockTerminalData(); IDashboardInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IStringLocalizer <DashboardInfoController> localizer = Substitute.For <IStringLocalizer <DashboardInfoController> >(); string key = "GetDashboardInfoErrorMessage"; string value = "Test Localized String"; var localizedString = new LocalizedString(key, value); localizer[Arg.Any <string>()].ReturnsForAnyArgs(localizedString); IOperation fakeOperation = FakeOperation(_cache); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); ILoggingFacade fakeLogger = FakeLogger(); IDashboardInfoApi dAPI = new DashboardInfoApi(appSettings, mockRepo); dAPI.GetDashboardSearchResultsPagination(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, 0).Throws(new Exception()); DashboardInfoController controller = FakeController(dAPI, mockRepo, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.GetDashBoardInfoSearch(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, "0"); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo); // Assert Assert.Equal(actualRecord.StatusCode, 500); Assert.Equal(actualRecord.Value, "Test Localized String"); }
///Unit Test for the RetrieveCache() public async Task MerchantListControllerTest_GetDataFromCache_Old() { string TerminalNbr = "589587"; MockTerminalListRepository mockTerminalListRepository = new MockTerminalListRepository(); ApiResult <ICollection <Terminal> > expectedResult = mockTerminalListRepository.GetMockData(TerminalNbr); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ITerminalListRepository mockRepo = Substitute.For <ITerminalListRepository>(); IStringLocalizer <TerminalListController> localizer = Substitute.For <IStringLocalizer <TerminalListController> >(); ITerminalListApi mockTerminalListApi = Substitute.For <ITerminalListApi>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); IOperation fakeOperation = Substitute.For <Operation>(mockCache); fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <ICollection <Terminal> >())).DoNotCallBase(); fakeOperation.RetrieveCache("FakeStringID", new List <Terminal>()).ReturnsForAnyArgs(expectedResult.Result); TerminalListController controller = new TerminalListController(mockCache, mockTerminalListApi, localizer, fakeOperation, loggingFacade); //ACT var terminalList = await controller.GetTerminalList(Convert.ToInt32(TerminalNbr)); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)terminalList).Value; //Assert Assert.Equal(JsonConvert.SerializeObject(actualRecord), JsonConvert.SerializeObject(expectedResult.Result)); }
public async Task DashboardInfoControllerTest_MerchantSuccess() { // Arrange int lid = 589547; MockDashboardInfoRepository repository = new MockDashboardInfoRepository(); var expectedResult = repository.GetMockMerchantData(); IDashboardInfoRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); IDashboardInfoApi dAPI = Substitute.For <IDashboardInfoApi>(); dAPI.GetDashboardSearchResults(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.MerchantNbr, lid).ReturnsForAnyArgs(expectedResult); DashboardInfoController controller = FakeController(dAPI, mockRepo, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.Get(Wp.CIS.LynkSystems.Model.Helper.LIDTypes.MerchantNbr, lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).MerchInfo.customerID, 393727); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).CustProfile.customerID, 393727); Assert.Equal(((Wp.CIS.LynkSystems.Model.DashboardInfo)actualRecord).TermInfo, null); }
public async Task DashboardInfoControllerTest_TerminalSuccess() { // Arrange int lid = 589547; MockActiveServicesRepository repository = new MockActiveServicesRepository(); var expectedResult = repository.GetMockData(); IActiveServicesRepository mockRepo = FakeRepository(); IDistributedCache _cache = FakeCache(); IOperation fakeOperation = FakeOperation(_cache); ILoggingFacade fakeLogger = FakeLogger(); IActiveServicesApi dAPI = Substitute.For <IActiveServicesApi>(); dAPI.GetActiveServices((int)Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, lid).ReturnsForAnyArgs(expectedResult); ActiveServicesController controller = FakeController(dAPI, _cache, fakeOperation, fakeLogger); // Act var dinfo = await controller.Get((int)Wp.CIS.LynkSystems.Model.Helper.LIDTypes.TerminalNbr, lid); var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)dinfo).Value; // Assert Assert.Equal(actualRecord, expectedResult.Result); }
//Would be revisiting to modify the actual way of call method. public void MerchantListRepositoryTest_Success() { // Arrange int CustomerID = 191809; string mid = "191807"; MockMerchantListRepository mockMerchantListRepository = new MockMerchantListRepository(); ApiResult <GenericPaginationResponse <Merchant> > expectedResult = mockMerchantListRepository.GetMockData(CustomerID); PaginationMerchant page = mockMerchantListRepository.GetPagination(); IOptions <DataContext> optionsAccessor = Substitute.For <IOptions <DataContext> >(); IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>(); IMerchantListRepository mockRepo = Substitute.For <IMerchantListRepository>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); mockRepo.GetMerchantListAsync(CustomerID, page).ReturnsForAnyArgs(expectedResult.Result); // Act var merchList = mockRepo.GetMerchantListAsync(CustomerID, page).Result; var actualRecord = (IList <Wp.CIS.LynkSystems.Model.Merchant>)merchList.ReturnedRecords; string merchInfo = actualRecord.Where(x => x.MID == mid).FirstOrDefault().Name; //// Assert Assert.Equal(((IList <Merchant>)actualRecord).Count, 2); Assert.Equal(merchInfo, "ABC Corp"); }
public async Task MerchantListApiTest_Exception() { // Arrange int CustomerID = 191809; MockMerchantListRepository mockMerchantListRepository = new MockMerchantListRepository(); ApiResult <GenericPaginationResponse <Merchant> > expectedResult = mockMerchantListRepository.GetMockData(CustomerID); PaginationMerchant page = mockMerchantListRepository.GetPagination(); IOptions <Settings> optionsAccessor = Substitute.For <IOptions <Settings> >(); IMerchantListRepository mockRepo = Substitute.For <IMerchantListRepository>(); IMerchantListApi merchantListApi = Substitute.For <IMerchantListApi>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); mockRepo.GetMerchantListAsync(CustomerID, page).Throws(new Exception()); merchantListApi = new MerchantListApi(optionsAccessor, mockRepo, loggingFacade); //Assert await Assert.ThrowsAsync <Exception>(() => merchantListApi.GetMerchantListAsync(CustomerID, page)); }
public MerchantListApi(IOptions <Settings> optionsAccessor, IMerchantListRepository merchantRepository, ILoggingFacade loggingFacade) { _loggingFacade = loggingFacade; _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting Merchant List API Service", "MerchantListApi.cs", "MerchantListApi"), CancellationToken.None); _merchantRepository = merchantRepository; }
public async Task CaseHistoryControllerTest_APICallHasErrorMessage() { // Arrange var page = GetCaseHistoryObject(); string ExtraId = null; MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository(); ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(648988); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IOperation fakeOperation = Substitute.For <Operation>(mockCache); fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> >())).DoNotCallBase(); IStringLocalizer <CaseHistoryController> localizer = Substitute.For <IStringLocalizer <CaseHistoryController> >(); string key = "InternalServerError"; string value = "Some Server Error Occurs while retrieving the data"; var localizedString = new LocalizedString(key, value); localizer[Arg.Any <string>()].ReturnsForAnyArgs(localizedString); ICaseHistoryApi caseHistoryApi = Substitute.For <ICaseHistoryApi>(); ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>(); loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase(); CaseHistoryController controller = new CaseHistoryController(mockCache, caseHistoryApi, localizer, fakeOperation, loggingFacade); ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > response = new ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> >(); response.Result = new GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>(); var errorkey = GlobalErrorCode.InternalServerError; response.AddErrorMessage(errorkey.ToString()); caseHistoryApi.GetCaseHistory(page.lidTypeEnum, page.LIDValue, ExtraId, page.Page).ThrowsForAnyArgs(new Exception()); // Act var casehistoryList = await controller.Get(page); // Assert Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)casehistoryList).StatusCode, 500); Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)casehistoryList).Value, localizer["InternalServerError"].Value); }
private static TerminalListController FakeController( IDistributedCache cache, ITerminalListApi terminalApi, IStringLocalizer <TerminalListController> localizer, IOperation operation, ILoggingFacade loggingFacade) { return(new TerminalListController(cache, terminalApi, localizer, operation, loggingFacade)); }