public async Task Get_ItemWithIdDoesNotExist_ReturnsNotFoundResult()
        {
            var repoMock = new Mock <IProductCategories>();

            repoMock.Setup(p => p.GetAsync(It.IsAny <string>()))
            .Throws(new ItemNotFoundException());

            var categoryController = new ProductCategoryController(repoMock.Object, null);

            var result = await categoryController.GetProductCategory("abc");

            Assert.IsType <NotFoundObjectResult>(result.Result);
        }
        public async Task Get_ItemWithIdDoesExist_ReturnsOkResult_WithCorrectItem()
        {
            var item = new ProductCategory()
            {
                Id   = "123-abc",
                Name = "TestCategory"
            };

            var repoMock = new Mock <IProductCategories>();

            repoMock.Setup(p => p.GetAsync(item.Id))
            .Returns(Task.FromResult(item));

            var categoryController = new ProductCategoryController(repoMock.Object, null);
            var response           = await categoryController.GetProductCategory(item.Id);

            Assert.IsType <OkObjectResult>(response.Result);

            var objectResult = response.Result as OkObjectResult;

            Assert.IsType <ProductCategoryResult>(objectResult.Value);

            Assert.Equal(item.Name, (objectResult.Value as ProductCategoryResult).ResultData.FirstOrDefault().Name);
        }