Example #1
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");
        }
Example #2
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);
        }
Example #3
0
 private RecentStatementController FakeController(IDistributedCache cache,
                                                  IRecentStatementApi recentStatementApi,
                                                  IStringLocalizer <RecentStatementController> localizer,
                                                  IOperation operation, ILoggingFacade fakeLogger)
 {
     return(new RecentStatementController(cache, recentStatementApi, localizer, operation, fakeLogger));
 }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="cache"></param>
        /// <param name="recentStatementApi"></param>
        /// <param name="localizer"></param>
        /// <param name="operation"></param>
        /// <param name="loggingFacade"></param>
        public RecentStatementController(IDistributedCache cache,
                                         IRecentStatementApi recentStatementApi,
                                         IStringLocalizer <RecentStatementController> localizer,
                                         IOperation operation, ILoggingFacade loggingFacade)
        {
            _loggingFacade = loggingFacade;

            _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting Recent Statement Controller", "RecentStatementController.cs", "TerminalDetailsController"), CancellationToken.None);

            this._cache = cache;

            this._recentStatementApi = recentStatementApi;

            this._localizer = localizer;

            this._operation = operation;
        }
Example #5
0
        public async System.Threading.Tasks.Task RecentStatementApiTest_ExceptionAsync()

        {
            // Arrange
            string merchantNbr = "542929801430265";
            MockRecentStatementRepository mockRecentStatementRepository = new MockRecentStatementRepository();
            ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > expectedResult = mockRecentStatementRepository.GetMockData();

            IOptions <Settings>        optionsAccessor = Substitute.For <IOptions <Settings> >();
            IRecentStatementRepository mockRepo        = Substitute.For <IRecentStatementRepository>();

            IRecentStatementApi api = Substitute.For <IRecentStatementApi>();

            mockRepo.GetRecentStatementAsync(merchantNbr).Throws(new Exception());

            api = new RecentStatementApi(optionsAccessor, mockRepo);

            //Assert
            await Assert.ThrowsAsync <Exception>(() => api.GetRecentStatementAsync(merchantNbr));
        }
Example #6
0
        public async Task RecentStatementControllerTest_NoDataFound()
        {
            // Arrange
            string merchantNbr = "542929801430265";
            MockRecentStatementRepository mockRecentStatementRepository = new MockRecentStatementRepository();
            ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > expectedResult = mockRecentStatementRepository.GetMockData();

            IDistributedCache mockCache = Substitute.For <IDistributedCache>();

            IStringLocalizer <RecentStatementController> localizer
                = Substitute.For <IStringLocalizer <RecentStatementController> >();
            string key             = "NoDataFound";
            string value           = "No data found for provided lid.";
            var    localizedString = new LocalizedString(key, value);

            localizer[Arg.Any <string>()].ReturnsForAnyArgs(localizedString);

            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();
            RecentStatementController controller = new RecentStatementController(mockCache, mockRecentStatementApi, localizer, fakeOperation, FakeLogger());
            ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > result = new ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> >();

            mockRecentStatementApi.GetRecentStatementAsync(merchantNbr).ReturnsForAnyArgs(result);

            // Act
            var recentStatementList = await controller.GetRecentStatement(merchantNbr);

            var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)recentStatementList);

            // Assert

            Assert.Equal(actualRecord.StatusCode, 200);

            Assert.Equal(actualRecord.Value, "No data found for provided lid.");
        }
Example #7
0
        public void RecentStatementApiTest_Success()
        {
            // Arrange
            string merchantNbr = "542929801430265";
            MockRecentStatementRepository mockRecentStatementRepository = new MockRecentStatementRepository();
            ApiResult <ICollection <Wp.CIS.LynkSystems.Model.RecentStatement> > expectedResult = mockRecentStatementRepository.GetMockData();

            IOptions <Settings>        optionsAccessor = Substitute.For <IOptions <Settings> >();
            IRecentStatementRepository mockRepo        = Substitute.For <IRecentStatementRepository>();

            IRecentStatementApi api = Substitute.For <IRecentStatementApi>();

            mockRepo.GetRecentStatementAsync(merchantNbr).ReturnsForAnyArgs(expectedResult.Result);

            api = new RecentStatementApi(optionsAccessor, mockRepo);

            // Act
            var recentList   = api.GetRecentStatementAsync(merchantNbr).Result;
            var actualRecord = (IList <Wp.CIS.LynkSystems.Model.RecentStatement>)recentList.Result;

            //// Assert
            Assert.Equal((actualRecord).Count, 1);
            Assert.Equal(actualRecord, expectedResult.Result);
        }