public async Task TestGetStockItemsAsync()
        {
            // Arrange
            var repository = RepositoryMocker.GetWarehouseRepository(nameof(TestGetStockItemsAsync));
            var controller = new WarehouseController(null, repository);

            // Act
            var response = await controller.GetStockItemsAsync() as ObjectResult;

            var value = response.Value as IPagedResponse <StockItem>;

            repository.Dispose();

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestPutStockItemAsync()
        {
            // Arrange
            var repository   = RepositoryMocker.GetWarehouseRepository(nameof(TestPutStockItemAsync));
            var controller   = new WarehouseController(null, repository);
            var id           = 12;
            var requestModel = new PutStockItemsRequest
            {
                StockItemName = "USB food flash drive (Update)",
                SupplierID    = 12,
                ColorID       = 3
            };

            // Act
            var response = await controller.PutStockItemAsync(id, requestModel) as ObjectResult;

            var value = response.Value as IResponse;

            repository.Dispose();

            // Assert
            Assert.False(value.DidError);
        }
        public async Task TestPostStockItemAsync()
        {
            // Arrange
            var repository   = RepositoryMocker.GetWarehouseRepository(nameof(TestPostStockItemAsync));
            var controller   = new WarehouseController(null, repository);
            var requestModel = new PostStockItemsRequest
            {
                StockItemID            = 100,
                StockItemName          = "USB anime flash drive - Goku",
                SupplierID             = 12,
                UnitPackageID          = 7,
                OuterPackageID         = 7,
                LeadTimeDays           = 14,
                QuantityPerOuter       = 1,
                IsChillerStock         = false,
                TaxRate                = 15.000m,
                UnitPrice              = 32.00m,
                RecommendedRetailPrice = 47.84m,
                TypicalWeightPerUnit   = 0.050m,
                CustomFields           = "{ \"CountryOfManufacture\": \"Japan\", \"Tags\": [\"32GB\",\"USB Powered\"] }",
                Tags          = "[\"32GB\",\"USB Powered\"]",
                SearchDetails = "USB anime flash drive - Goku",
                LastEditedBy  = 1,
                ValidFrom     = DateTime.Now,
                ValidTo       = DateTime.Now.AddYears(5)
            };

            // Act
            var response = await controller.PostStockItemAsync(requestModel) as ObjectResult;

            var value = response.Value as ISingleResponse <StockItem>;

            repository.Dispose();

            // Assert
            Assert.False(value.DidError);
        }