public void Update_Product_ShouldUpdateProduct()
        {
            //arrange
            SqlProductRepository productRepository = new SqlProductRepository(connectionString);
            Product product = productRepository.SelectAll().First(p => p.Id == "p1");

            product.CostPrice = 1.6;
            //act
            bool updated = productRepository.Update(product);

            //assert
            Assert.True(updated);
            Assert.Equal(1.6, productRepository.SelectAll().First(p => p.Id == "p1").CostPrice);
        }
        public void Update_ContrivedOptimisticConcurrencyConflict()
        {
            //arrange
            SqlProductRepository productRepository = new SqlProductRepository(connectionString);
            Product product1 = productRepository.SelectAll().First(p => p.Id == "p1");
            Product product2 = productRepository.SelectAll().First(p => p.Id == "p1");

            product1.RetailPrice = 1.50;
            product2.RetailPrice = 1.55;

            //act

            //modifying a row will update the RowVersion column value
            bool updatedProduct1 = productRepository.Update(product1);

            //product1 RowVersion property and database RowVersion
            //column values are now unequal, so the update will fail
            bool updatedProduct2 = productRepository.Update(product2);

            //assert
            Assert.True(updatedProduct1);
            Assert.False(updatedProduct2);
        }
示例#3
0
 public Product UpdateProduct(Product product)
 {
     return(_productRepository.Update(product));
 }