public async Task CompareRecordsTest() { // Arrange IProductRepository mockRepo = new MockProductRepository(); var mockDownloadTimesApi = Substitute.For <IDownloadTimesApi>(); var mockProductTypesApi = Substitute.For <IProductTypesApi>(); var mockManufacturersApi = Substitute.For <IManufacturersApi>(); var mockInstallTypesApi = Substitute.For <IInstallTypesApi>(); var mockMobileLookupApi = Substitute.For <IMobileLookupApi>(); var mockBrandApi = Substitute.For <IBrandApi>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IStringLocalizer <ProductsController> mockLocalizer = new MockStringLocalizer <ProductsController>(); IProductApi productApi = new ProductApi(appSettings, mockRepo); var controller = new ProductsController(mockCache, productApi, mockDownloadTimesApi, mockProductTypesApi, mockManufacturersApi, mockInstallTypesApi, mockMobileLookupApi, mockBrandApi, mockLocalizer); var request = new GetProductsWithPagingRequestModel { FirstRecordNumber = 0, PageSize = 10, SortField = string.Empty, SortOrder = SortOrderEnum.Asc }; var testProducts = await mockRepo.GetAllProductsAsync(); var firstProduct = new List <ProductModel>(testProducts)[0]; //// Act var actionResult = await controller.GetProductsWithPaging(request); //// Assert var actualRecord = ((ObjectResult)actionResult).Value; Assert.Equal(((List <ProductModel>)actualRecord).Count, 10); var testProduct = ((List <ProductModel>)actualRecord)[0]; Assert.Equal(JsonConvert.SerializeObject(firstProduct), JsonConvert.SerializeObject(testProduct)); }
public async Task BadRequestTest() { // Arrange IProductRepository mockRepo = new MockProductRepository(); var mockDownloadTimesApi = Substitute.For <IDownloadTimesApi>(); var mockProductTypesApi = Substitute.For <IProductTypesApi>(); var mockManufacturersApi = Substitute.For <IManufacturersApi>(); var mockInstallTypesApi = Substitute.For <IInstallTypesApi>(); var mockMobileLookupApi = Substitute.For <IMobileLookupApi>(); var mockBrandApi = Substitute.For <IBrandApi>(); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IStringLocalizer <ProductsController> mockLocalizer = new MockStringLocalizer <ProductsController>(); IProductApi productApi = new ProductApi(appSettings, mockRepo); var controller = new ProductsController(mockCache, productApi, mockDownloadTimesApi, mockProductTypesApi, mockManufacturersApi, mockInstallTypesApi, mockMobileLookupApi, mockBrandApi, mockLocalizer); var request = new GetProductsWithPagingRequestModel { FirstRecordNumber = -1, PageSize = 0, SortField = string.Empty, SortOrder = SortOrderEnum.Asc }; controller.ModelState.AddModelError("", "Error"); //// Act var actionResult = await controller.GetProductsWithPaging(request); var badResponse = actionResult as BadRequestObjectResult; //// Assert Assert.NotNull(badResponse); Assert.Equal(badResponse.StatusCode, (int)System.Net.HttpStatusCode.BadRequest); }
public async Task GetAllLookupsTest() { IProductRepository mockRepo = new MockProductRepository(); var mockDownloadTimesApi = Substitute.For <IDownloadTimesApi>(); var repositoryReturnValue = new List <DownloadTimeModel>() { new DownloadTimeModel() { Description = "Description 1", DLTypeID = 1 }, new DownloadTimeModel() { Description = "Description 2", DLTypeID = 2 } }; mockDownloadTimesApi .GetAllDownloadTimesAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <DownloadTimeModel> >(repositoryReturnValue)); var mockProductTypesApi = Substitute.For <IProductTypesApi>(); var productTypesRepositoryReturnValue = new List <ProductTypeModel>() { new ProductTypeModel() { Description = "Description 1", ProductTypeId = 1 }, new ProductTypeModel() { Description = "Description 2", ProductTypeId = 2 } }; mockProductTypesApi .GetAllProductTypesAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <ProductTypeModel> >(productTypesRepositoryReturnValue)); var mockManufacturersApi = Substitute.For <IManufacturersApi>(); var manufRepositoryReturnValue = new List <ManufacturerModel>() { new ManufacturerModel() { Description = "Description 1", MfgCode = 1 }, new ManufacturerModel() { Description = "Description 2", MfgCode = 2 } }; mockManufacturersApi .GetAllManufacturersAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <ManufacturerModel> >(manufRepositoryReturnValue)); var mockInstallTypesApi = Substitute.For <IInstallTypesApi>(); var installTypesRepositoryReturnValue = new List <InstallTypeModel>() { new InstallTypeModel() { Description = "Description 1", InstallType = 1 }, new InstallTypeModel() { Description = "Description 2", InstallType = 2 } }; mockInstallTypesApi .GetAllInstallTypesAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <InstallTypeModel> >(installTypesRepositoryReturnValue)); var mockMobileLookupApi = Substitute.For <IMobileLookupApi>(); var mobileRepositoryReturnValue = new List <MobileLookupModel>() { new MobileLookupModel() { Description = "Description 1", MobileType = 1 }, new MobileLookupModel() { Description = "Description 2", MobileType = 2 } }; mockMobileLookupApi .GetAllMobileLookupsAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <MobileLookupModel> >(mobileRepositoryReturnValue)); var mockBrandApi = Substitute.For <IBrandApi>(); var brandRepositoryReturnValue = new List <ProductBrandModel>() { new ProductBrandModel() { Description = "Description 1", ID = 1 }, new ProductBrandModel() { Description = "Description 2", ID = 2 } }; mockBrandApi .GetProductBrandsAsync() .ReturnsForAnyArgs(Task.FromResult <IEnumerable <ProductBrandModel> >(brandRepositoryReturnValue)); IDistributedCache mockCache = Substitute.For <IDistributedCache>(); IOptions <Settings> appSettings = Substitute.For <IOptions <Settings> >(); IStringLocalizer <ProductsController> mockLocalizer = new MockStringLocalizer <ProductsController>(); IProductApi productApi = new ProductApi(appSettings, mockRepo); var controller = new ProductsController(mockCache, productApi, mockDownloadTimesApi, mockProductTypesApi, mockManufacturersApi, mockInstallTypesApi, mockMobileLookupApi, mockBrandApi, mockLocalizer); //// Act var actionResult = await controller.GetLookupsForProducts(); //// Assert var actualRecord = ((ObjectResult)actionResult).Value; Assert.Equal(((ProductLookupValuesModel)actualRecord).Brands.Count(), 2); Assert.Equal(((ProductLookupValuesModel)actualRecord).DownloadTimes.Count(), 2); Assert.Equal(((ProductLookupValuesModel)actualRecord).InstallTypes.Count(), 2); Assert.Equal(((ProductLookupValuesModel)actualRecord).Manufacturers.Count(), 2); Assert.Equal(((ProductLookupValuesModel)actualRecord).MobileLookups.Count(), 2); Assert.Equal(((ProductLookupValuesModel)actualRecord).ProductTypes.Count(), 2); }