public async Task CreateProduct()
        {
            _productRepository.Setup(mockRepo => mockRepo.CreateAsync(It.IsNotNull <DM.IStorableProduct>())).ReturnsAsync(ToDal(_expectedProduct));

            var actualProduct = await _productFunctionality.CreateAsync(_expectedProduct);

            AssertProductsAreEqual(_expectedProduct, actualProduct);
        }
        public async Task <Product> CreateProduct(Product product)
        {
            ServiceContract.RequireNotNull(product, nameof(product));
            ServiceContract.RequireValidated(product, nameof(product));

            var bllProduct = ToBll(product);

            bllProduct = await _productFunctionality.CreateAsync(bllProduct);

            var result = FromBll(bllProduct);

            FulcrumAssert.IsNotNull(result, nameof(result));
            FulcrumAssert.IsValidated(result, $"{Namespace}: 41042A82-2D71-427F-BBBF-9CDC7545E590");

            return(result);
        }