Exemplo n.º 1
0
        public void CaseHistoryControllerTest_ModelState_Invalid()
        {
            //Arrange
            var page = GetCaseHistoryObject();

            int lid = 648988;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IStringLocalizer <CaseHistoryController> localizer
                = Substitute.For <IStringLocalizer <CaseHistoryController> >();

            IDistributedCache mockCache      = FakeCache();
            IOperation        fakeOperation  = Substitute.ForPartsOf <Operation>(mockCache);
            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);

            //Act
            controller.ModelState.AddModelError("key", "error message");
            var result = controller.Get(page);

            //Assert
            Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)result.Result).StatusCode.ToString(), "400");
        }
Exemplo n.º 2
0
        //Would be revisiting to modify the actual way of call method.
        public void CaseHistoryControllerTest_Success()
        {
            // Arrange
            LidTypeEnum           LIDType = LidTypeEnum.CustomerNbr;
            string                LID     = "";
            PaginationCaseHistory page    = new PaginationCaseHistory();

            string ExtraId = null;
            int    lid     = 648988;
            int    CaseID  = 8715123;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IOptions <DataContext>     optionsAccessor   = Substitute.For <IOptions <DataContext> >();
            IDatabaseConnectionFactory connectionFactory = Substitute.For <IDatabaseConnectionFactory>();

            ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>();

            mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).ReturnsForAnyArgs(expectedResult.Result);

            // Act
            var caseHistory = mockRepo.GetCaseHistoryInfo(LIDType, "648988", ExtraId, page).Result;

            var actualRecord = (IList <Wp.CIS.LynkSystems.Model.CaseHistory>)caseHistory.ReturnedRecords;

            string caseInfo = actualRecord.Where(x => x.caseId == CaseID).FirstOrDefault().caseLevel;

            //// Assert

            Assert.Equal(((IList <Wp.CIS.LynkSystems.Model.CaseHistory>)actualRecord).Count, 6);

            Assert.Equal(caseInfo, "Customer");
        }
Exemplo n.º 3
0
        public async Task CaseHistoryApiTest_Exception()
        {
            // Arrange
            LidTypeEnum LIDType = LidTypeEnum.CustomerNbr;
            string      LID     = "";

            PaginationCaseHistory page = new PaginationCaseHistory();

            int lid = 648988;

            string ExtraId = null;


            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

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

            ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>();

            ICaseHistoryApi casehistoryApi = Substitute.For <ICaseHistoryApi>();

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

            mockRepo.GetCaseHistoryInfo(LIDType, LID, ExtraId, page).Throws(new Exception());

            casehistoryApi = new CaseHistoryApi(optionsAccessor, mockRepo);

            //Assert
            await Assert.ThrowsAsync <Exception>(() => casehistoryApi.GetCaseHistory(LIDType, LID, ExtraId, page));
        }
Exemplo n.º 4
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);
        }
Exemplo n.º 5
0
        //Mock API Call and unit test for the API call with returning mock ContactList.
        public async Task CaseHistoryControllerTest_Success()
        {
            // Arrange
            var page = GetCaseHistoryObject();

            page.lidTypeEnum = LidTypeEnum.Terminal;
            page.LIDValue    = "FakeStringID";

            int    lid     = 648988;
            int    CaseID  = 8715123;
            string ExtraId = null;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);


            ICaseHistoryRepository mockRepo = Substitute.For <ICaseHistoryRepository>();


            IStringLocalizer <CaseHistoryController> localizer
                = Substitute.For <IStringLocalizer <CaseHistoryController> >();

            ICaseHistoryApi caseHistoryApi = Substitute.For <ICaseHistoryApi>();

            IDistributedCache mockCache     = FakeCache();
            IOperation        fakeOperation = Substitute.ForPartsOf <Operation>(mockCache);


            fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <ICollection <Wp.CIS.LynkSystems.Model.CaseHistory> >())).DoNotCallBase();
            fakeOperation.WhenForAnyArgs(x => x.AddCacheAsync(Arg.Any <string>(), Arg.Any <ICollection <Wp.CIS.LynkSystems.Model.CaseHistory> >())).DoNotCallBase();

            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);

            caseHistoryApi.GetCaseHistory(page.lidTypeEnum, page.LIDValue, ExtraId, page.Page).ReturnsForAnyArgs(expectedResult);

            // Act

            var casehistory = await controller.Get(page);

            var    actualRecord    = ((Microsoft.AspNetCore.Mvc.ObjectResult)casehistory).Value;
            string casehistoryInfo = ((IList <Wp.CIS.LynkSystems.Model.CaseHistory>)
                                          ((GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>)actualRecord).ReturnedRecords).Where(x => x.caseId == CaseID).FirstOrDefault().orgDeptName;

            var recordCount = ((GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>)actualRecord).ReturnedRecords;


            // Assert
            Assert.Equal(recordCount.ToList().Count, 6);


            Assert.Equal(casehistoryInfo, "Customer Care");
        }
Exemplo n.º 6
0
        public async Task CaseHistoryControllerTest_FailToRetrieveData()
        {
            // Arrange
            var page = GetCaseHistoryObject();

            page.lidTypeEnum = LidTypeEnum.Terminal;

            int    lid     = 648988;
            string ExtraId = null;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IStringLocalizer <CaseHistoryController> localizer
                = Substitute.For <IStringLocalizer <CaseHistoryController> >();

            IDistributedCache mockCache     = FakeCache();
            IOperation        fakeOperation = Substitute.ForPartsOf <Operation>(mockCache);



            string key   = "NoDataFound";
            string value = "No data found for provided ID";

            var localizedString = new LocalizedString(key, value);

            ICaseHistoryApi casehistoryApi = Substitute.For <ICaseHistoryApi>();

            fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <ICollection <Wp.CIS.LynkSystems.Model.CaseHistory> >())).DoNotCallBase();

            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>();

            ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>();

            loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase();

            casehistoryApi.GetCaseHistory(page.lidTypeEnum, page.LIDValue, ExtraId, page.Page).ReturnsForAnyArgs(response);
            CaseHistoryController controller = new CaseHistoryController(mockCache, casehistoryApi, localizer, fakeOperation, loggingFacade);


            // Act
            var casehisotryList = await controller.Get(page);

            // Assert

            Assert.Equal(((Microsoft.AspNetCore.Mvc.ObjectResult)casehisotryList).StatusCode, 200);
        }
Exemplo n.º 7
0
        //Unit Test for the RetrieveCache()
        public async Task CaseHistoryControllerTest_GetDataFromCache()
        {
            var page = GetCaseHistoryObject();

            page.lidTypeEnum = LidTypeEnum.Terminal;
            page.LIDValue    = "FakeStringID";

            int lid = 648988;

            MockCaseHistoryRepository mockCaseHistoryRepository = new MockCaseHistoryRepository();
            ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > expectedResult = mockCaseHistoryRepository.GetMockData(lid);

            IStringLocalizer <CaseHistoryController> localizer
                = Substitute.For <IStringLocalizer <CaseHistoryController> >();

            ICaseHistoryApi caseHistoryApi = Substitute.For <ICaseHistoryApi>();

            caseHistoryApi
            .GetCaseHistory(Arg.Any <LidTypeEnum>(), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <PaginationCaseHistory>())
            .Returns(Task.FromResult <ApiResult <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> > >(expectedResult));

            IDistributedCache mockCache = FakeCache();


            IOperation fakeOperation = Substitute.For <Operation>(mockCache);

            fakeOperation.WhenForAnyArgs(x => x.RetrieveCache(Arg.Any <string>(), Arg.Any <GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory> >())).DoNotCallBase();

            ILoggingFacade loggingFacade = Substitute.For <ILoggingFacade>();

            loggingFacade.WhenForAnyArgs(x => x.LogAsync(Arg.Any <LogLevels>(), Arg.Any <string>(), Arg.Any <CancellationToken>())).DoNotCallBase();

            fakeOperation.RetrieveCache("_FakeStringID", new GenericPaginationResponse <Wp.CIS.LynkSystems.Model.CaseHistory>()).ReturnsForAnyArgs(expectedResult.Result);
            CaseHistoryController controller = new CaseHistoryController(mockCache, caseHistoryApi, localizer, fakeOperation, loggingFacade);

            //ACT

            var contactList = await controller.Get(page);

            var actualRecord = ((Microsoft.AspNetCore.Mvc.ObjectResult)contactList).Value;

            //Assert
            Assert.Equal(JsonConvert.SerializeObject(actualRecord), JsonConvert.SerializeObject(expectedResult.Result));
        }