예제 #1
0
        public void Return_None()
        {
            TestContext.DeleteAll(x => x.AuditEntryProperties);
            TestContext.DeleteAll(x => x.AuditEntries);
            TestContext.DeleteAll(x => x.Entity_Basics);

            TestContext.Insert(x => x.Entity_Basics, 3);

            var audit = AuditHelper.AutoSaveAudit();

            Entity_Basic auditedItem = null;

            using (var ctx = new TestContext())
            {
                TestContext.Insert(ctx, x => x.Entity_Basics, 3);
                ctx.SaveChanges(audit);
            }

            // GET the audited item
            auditedItem = TestContext.Insert(x => x.Entity_Basics, 3)[0];

            // UnitTest - Audit
            {
                using (var ctx = new TestContext())
                {
                    var auditEntries = ctx.AuditEntries.Where <Entity_Basic>(auditedItem.ID).ToList();

                    Assert.AreEqual(0, auditEntries.Count);
                }
            }
        }
예제 #2
0
        public void Array_Equal()
        {
            TestContext.DeleteAll(x => x.AuditEntryProperties);
            TestContext.DeleteAll(x => x.AuditEntries);
            TestContext.DeleteAll(x => x.Entity_Basics);

            TestContext.Insert(x => x.Entity_Basics, 3);

            var audit = AuditHelper.AutoSaveAudit();

            Entity_Basic auditedItem = null;

            using (var ctx = new TestContext())
            {
                auditedItem = TestContext.Insert(ctx, x => x.Entity_Basics, 3)[2];
                ctx.SaveChanges(audit);
            }

            // UnitTest - Audit
            {
                using (var ctx = new TestContext())
                {
                    var auditEntries = ctx.AuditEntries.Where <Entity_Basic>(auditedItem.ID).ToList();

                    Assert.AreEqual(1, auditEntries.Count);

                    {
                        var auditEntry = auditEntries[0];
                        Assert.AreEqual(auditedItem.ID.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ID").NewValueFormatted);
                        Assert.AreEqual(auditedItem.ColumnInt.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").NewValueFormatted);
                    }
                }
            }
        }
예제 #3
0
        public void Array_Null()
        {
            TestContext.DeleteAll(x => x.AuditEntryProperties);
            TestContext.DeleteAll(x => x.AuditEntries);
            TestContext.DeleteAll(x => x.Entity_Basics);

            TestContext.Insert(x => x.Entity_Basics, 3);

            var audit = AuditHelper.AutoSaveAudit();

            Entity_Basic auditedItem = null;

            using (var ctx = new TestContext())
            {
                auditedItem = TestContext.Insert(ctx, x => x.Entity_Basics, 3)[2];
                ctx.SaveChanges(audit);
            }

            // UnitTest - Audit
            {
                using (var ctx = new TestContext())
                {
                    try
                    {
                        var auditEntries = ctx.AuditEntries.Where <Entity_Basic>((object[])null).ToList();

                        throw new Exception("Oops! Invalid exception message.");
                    }
                    catch (Exception ex)
                    {
                        Assert.AreEqual(ExceptionMessage.Audit_Key_Null, ex.Message);
                    }
                }
            }
        }
예제 #4
0
        public void Value_New()
        {
            TestContext.DeleteAll(x => x.AuditEntryProperties);
            TestContext.DeleteAll(x => x.AuditEntries);
            TestContext.DeleteAll(x => x.Entity_Basics);

            TestContext.Insert(x => x.Entity_Basics, 3);

            var audit = AuditHelper.AutoSaveAudit();

            Entity_Basic auditedItem = null;

            using (var ctx = new TestContext())
            {
                TestContext.Insert(ctx, x => x.Entity_Basics, 3);
                ctx.SaveChanges(audit);
            }

            auditedItem = new Entity_Basic();

            // UnitTest - Audit
            {
                using (var ctx = new TestContext())
                {
                    var auditEntries = ctx.AuditEntries.Where(auditedItem).ToList();

                    Assert.AreEqual(0, auditEntries.Count);
                }
            }
        }
예제 #5
0
        public void Return_Many()
        {
            TestContext.DeleteAll(x => x.AuditEntryProperties);
            TestContext.DeleteAll(x => x.AuditEntries);
            TestContext.DeleteAll(x => x.Entity_Basics);

            TestContext.Insert(x => x.Entity_Basics, 3);

            var audit  = AuditHelper.AutoSaveAudit();
            var audit2 = AuditHelper.AutoSaveAudit();

            Entity_Basic auditedItem = null;
            int          originalValue;

            using (var ctx = new TestContext())
            {
                auditedItem = TestContext.Insert(ctx, x => x.Entity_Basics, 3)[2];
                ctx.SaveChanges(audit);

                originalValue          = auditedItem.ColumnInt;
                auditedItem.ColumnInt += 2;

                ctx.SaveChanges(audit2);
            }

            // UnitTest - Audit
            {
                using (var ctx = new TestContext())
                {
                    var auditEntries = ctx.AuditEntries.Where <Entity_Basic>(auditedItem.ID).ToList();

                    Assert.AreEqual(2, auditEntries.Count);

                    {
                        var auditEntry = auditEntries[0];
                        Assert.AreEqual(auditedItem.ID.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ID").NewValueFormatted);
                        Assert.AreEqual(originalValue.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").NewValueFormatted);
                        Assert.AreEqual("2", auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").NewValueFormatted);
                    }

                    {
                        var auditEntry = auditEntries[1];
                        Assert.AreEqual(auditedItem.ID.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ID").NewValueFormatted);
                        Assert.AreEqual(originalValue.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").OldValueFormatted);
                        Assert.AreEqual(auditedItem.ColumnInt.ToString(), auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").NewValueFormatted);
                        Assert.AreEqual("2", auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").OldValueFormatted);
                        Assert.AreEqual("4", auditEntry.Properties.Single(x => x.PropertyName == "ColumnInt").NewValueFormatted);
                    }
                }
            }
        }
        public void Single_Property_Type()
        {
            TestContext.DeleteAll(x => x.Entity_Basics);
            TestContext.Insert(x => x.Entity_Basics, 50);

            using (var ctx = new TestContext())
            {
                // BEFORE
                Assert.AreEqual(1225, ctx.Entity_Basics.Sum(x => x.ColumnInt));

                // ACTION
                var entity = new Entity_Basic {ColumnInt = 99};
                var rowsAffected = ctx.Entity_Basics.Where(x => x.ColumnInt > 10 && x.ColumnInt <= 40).Update(x => new Entity_Basic {ColumnInt = entity.ColumnInt});

                // AFTER
                Assert.AreEqual(3430, ctx.Entity_Basics.Sum(x => x.ColumnInt));
                Assert.AreEqual(30, rowsAffected);
            }
        }
        public void Single_Property_Type()
        {
            TestContext.DeleteAll(x => x.Entity_Basics);
            TestContext.Insert(x => x.Entity_Basics, 50);

            using (var ctx = new TestContext())
            {
                // BEFORE
                Assert.AreEqual(1225, ctx.Entity_Basics.Sum(x => x.ColumnInt));

                // ACTION
                var entity = new Entity_Basic {
                    ColumnInt = 99
                };
                var rowsAffected = ctx.Entity_Basics.Where(x => x.ColumnInt > 10 && x.ColumnInt <= 40).Update(x => new Entity_Basic {
                    ColumnInt = entity.ColumnInt
                });

                // AFTER
                Assert.AreEqual(3430, ctx.Entity_Basics.Sum(x => x.ColumnInt));
                Assert.AreEqual(30, rowsAffected);
            }
        }