public async Task Put_RequestIdNotEqualtoDataId_ReturnsBadRequestResult()
        {
            var categoryController = new ProductCategoryController(null, null);
            var response           = await categoryController.UpdateProductCategory("abc", new ProductCategory()
            {
                Id = "123"
            });

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

            var repoMock = new Mock <IProductCategories>();

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

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

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

            var repoMock = new Mock <IProductCategories>();

            repoMock.Setup(p => p.UpdateAsync(item.Id, item))
            .Throws(new ItemAlreadyExistsException());

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

            Assert.IsType <ConflictObjectResult>(response.Result);
        }