public void Add_means_changes()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Add(product);
            Assert.AreEqual(true, context.HasChanges());
        }
Exemple #2
0
        public ActionResult GetProduct(Guid id)
        {
            ProductPoco poco = _logic.Get(id);

            if (poco == null)
            {
                return(NotFound());
            }
            else
            {
                return(Ok(poco));
            }
        }
        public void Attach_detach_means_no_changes()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            Assert.AreEqual(false, context.HasChanges());
            context.Set <ProductPoco>().Detach(product);
            Assert.AreEqual(false, context.HasChanges());
        }
        public void GetChanges_should_return_added()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Add(product);
            var changes = context.GetChanges();

            Assert.AreSame(product, changes.FirstOrDefault().Entity);
        }
        public void GetChanges_should_not_return_attached_unchanged()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            var changes = context.GetChanges();

            Assert.AreEqual(0, changes.Count());
        }
        public void Attach_modify_means_changes_at_the_end()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            Assert.AreEqual(false, context.HasChanges());
            product.UnitPrice++;
            Assert.AreEqual(true, context.HasChanges());
        }
        public void CancelChanges_cancels_added_changes()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Add(product);
            Assert.AreEqual(true, context.HasChanges());
            Assert.AreEqual(1, context.GetChanges().Count());
            context.CancelChanges();
            Assert.AreEqual(false, context.HasChanges());
            Assert.AreEqual(0, context.GetChanges().Count());
        }
        public void EntityChanged_should_be_triggered_on_added()
        {
            int changesCount = 0;
            var context      = new OEContext();

            context.EntityChanged += (s, e) => changesCount++;

            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Add(product);
            Assert.AreEqual(1, changesCount);
        }
        public void GetChanges_should_not_return_added_modified_deleted()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Add(product);
            product.UnitPrice++;
            context.Set <ProductPoco>().Delete(product);

            var changes = context.GetChanges();

            Assert.AreEqual(0, changes.Count());
        }
        public void GetChanges_should_not_return_attached_modified_deleted()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            product.UnitPrice++;
            context.Set <ProductPoco>().Delete(product);

            var changes = context.GetChanges();

            Assert.AreSame(product, changes.FirstOrDefault().Entity);
        }
        public void ApplyChanges_applies_attached_deleted_changes()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            context.Set <ProductPoco>().Delete(product);
            Assert.AreEqual(true, context.HasChanges());
            Assert.AreEqual(1, context.GetChanges().Count());
            context.ApplyChanges();
            Assert.AreEqual(false, context.HasChanges());
            Assert.AreEqual(0, context.GetChanges().Count());
            Assert.AreEqual(0, context.Set <ProductPoco>().GetAll().Count());
        }
        public void EntityChanged_should_be_triggered_on_deleted_but_not_on_modified_for_attached()
        {
            int changesCount = 0;
            var context      = new OEContext();

            context.EntityChanged += (s, e) => changesCount++;

            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            Assert.AreEqual(0, changesCount);
            product.UnitPrice++;
            Assert.AreEqual(0, changesCount);
            context.Set <ProductPoco>().Delete(product);
            Assert.AreEqual(1, changesCount);
        }
        public void GetChanges_should_return_attached_modified()
        {
            var context = new OEContext();
            var product = new ProductPoco()
            {
                Id        = 1,
                Name      = "Test product",
                UnitPrice = 100
            };

            context.Set <ProductPoco>().Attach(product);
            product.UnitPrice++;

            var changes = context.GetChanges();

            Assert.AreSame(product, changes.FirstOrDefault().Entity);
            var modifiedProperty = changes.First().ModifiedProperties.First();

            Assert.AreEqual("UnitPrice", modifiedProperty.Name);
            Assert.AreEqual(100M, modifiedProperty.OriginalValue);
        }