Beispiel #1
0
        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");
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        /// <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;
        }
Beispiel #4
0
        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");
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        //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");
        }
Beispiel #11
0
        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");
        }
Beispiel #12
0
        //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");
        }
Beispiel #13
0
        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");
        }
Beispiel #14
0
        //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");
        }
Beispiel #15
0
        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));
        }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        //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");
        }
Beispiel #19
0
        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");
        }
Beispiel #20
0
 private RecentStatementController FakeController(IDistributedCache cache,
                                                  IRecentStatementApi recentStatementApi,
                                                  IStringLocalizer <RecentStatementController> localizer,
                                                  IOperation operation, ILoggingFacade fakeLogger)
 {
     return(new RecentStatementController(cache, recentStatementApi, localizer, operation, fakeLogger));
 }
Beispiel #21
0
        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");
        }
Beispiel #23
0
        ///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);
        }
Beispiel #26
0
        //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");
        }
Beispiel #27
0
        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));
        }
Beispiel #28
0
 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;
 }
Beispiel #29
0
        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);
        }
Beispiel #30
0
 private static TerminalListController FakeController(
     IDistributedCache cache,
     ITerminalListApi terminalApi,
     IStringLocalizer <TerminalListController> localizer,
     IOperation operation,
     ILoggingFacade loggingFacade)
 {
     return(new TerminalListController(cache, terminalApi, localizer, operation, loggingFacade));
 }