public void TestInitialize()
        {
            productForDetailDto = new ProductForDetailDto()
            {
                Id                = 1,
                Name              = "TestItem",
                UnitPrice         = 12,
                Qty               = 5,
                Description       = "Test Item for testing",
                ProductCategoryId = 1,
                PhotoUrl          = "www.google.lk"
            };

            productForListDto = new ProductForListDto()
            {
                Id                = 1,
                Name              = "TestProductList Item",
                UnitPrice         = 12,
                ProductCategoryId = 1,
                PhotoUrl          = "www.google.lk"
            };

            _mockUnitOfWork        = new Mock <IUnitOfWork>();
            _mockProductRepository = new Mock <IProductRepository>();
            //_mockProductRepository.Setup(m =>m.GetProducts()).ReturnsAsync(productForListDto);
            _mockProductRepository.Setup(m => m.GetProduct(1)).ReturnsAsync(productForDetailDto);
            _mockUnitOfWork.Setup(m => m.ProductRepository).Returns(_mockProductRepository.Object);
        }
        public async System.Threading.Tasks.Task GetProducts_WhenSuccessful_ReturnProductListAsync()
        {
            //GetProductList_Successful
            //GetProductList_WithError401

            IList <ProductForListDto> productsObj = new List <ProductForListDto>();
            ProductForListDto         product     = new ProductForListDto();

            product.Id   = 1;
            product.Name = "TestProduct";
            product.ProductCategoryId = 1;
            productsObj.Add(product);
            //mock setup
            _productRepositoryMock.Setup(s => s.GetProducts()).ReturnsAsync(productsObj);
            //_productsController = new ProductsController(_productRepositoryMock.Object, _mapperMock.Object);

            IActionResult actionResult = await _productsController.GetProducts();

            //System.Threading.Tasks.Task<IActionResult> returnproduct = _productsController.GetProducts();
            Assert.AreEqual(200, ((Microsoft.AspNetCore.Mvc.ObjectResult)actionResult).StatusCode);
        }