public void VerifyHistoryOfIng2()
        {
            var ed1_1_fromRev3 = new DoubleListJoinColumnBidirectionalRefEdEntity1 {
                Id = ed1_1_id, Data = "ed1_1 bis"
            };
            var ed1_2          = Session.Get <DoubleListJoinColumnBidirectionalRefEdEntity1>(ed1_2_id);
            var ed2_1          = Session.Get <DoubleListJoinColumnBidirectionalRefEdEntity2>(ed2_1_id);
            var ed2_2_fromRev1 = new DoubleListJoinColumnBidirectionalRefEdEntity2 {
                Id = ed2_2_id, Data = "ed2_2"
            };

            var rev1 = AuditReader().Find <DoubleListJoinColumnBidirectionalRefIngEntity>(ing2_id, 1);
            var rev2 = AuditReader().Find <DoubleListJoinColumnBidirectionalRefIngEntity>(ing2_id, 2);
            var rev3 = AuditReader().Find <DoubleListJoinColumnBidirectionalRefIngEntity>(ing2_id, 3);
            var rev4 = AuditReader().Find <DoubleListJoinColumnBidirectionalRefIngEntity>(ing2_id, 4);

            CollectionAssert.AreEquivalent(new[] { ed1_2 }, rev1.References1);
            CollectionAssert.IsEmpty(rev2.References1);
            CollectionAssert.IsEmpty(rev3.References1);
            CollectionAssert.AreEquivalent(new[] { ed1_1_fromRev3, ed1_2 }, rev4.References1);

            CollectionAssert.AreEquivalent(new[] { ed2_2_fromRev1 }, rev1.References2);
            CollectionAssert.IsEmpty(rev2.References2);
            CollectionAssert.IsEmpty(rev3.References2);
            CollectionAssert.AreEquivalent(new[] { ed2_1 }, rev4.References2);
        }
Пример #2
0
        protected override void Initialize()
        {
            var ed1_1 = new DoubleListJoinColumnBidirectionalRefEdEntity1 {
                Data = "ed1_1"
            };
            var ed1_2 = new DoubleListJoinColumnBidirectionalRefEdEntity1 {
                Data = "ed1_2"
            };
            var ed2_1 = new DoubleListJoinColumnBidirectionalRefEdEntity2 {
                Data = "ed2_1"
            };
            var ed2_2 = new DoubleListJoinColumnBidirectionalRefEdEntity2 {
                Data = "ed2_2"
            };
            var ing1 = new DoubleListJoinColumnBidirectionalRefIngEntity {
                Data = "coll1"
            };
            var ing2 = new DoubleListJoinColumnBidirectionalRefIngEntity {
                Data = "coll2"
            };

            // Revision 1 (ing1: ed1_1, ed2_1, ing2: ed1_2, ed2_2)
            using (var tx = Session.BeginTransaction())
            {
                ing1.References1.Add(ed1_1);
                ing1.References2.Add(ed2_1);
                ing2.References1.Add(ed1_2);
                ing2.References2.Add(ed2_2);
                ed1_1_id = (int)Session.Save(ed1_1);
                ed1_2_id = (int)Session.Save(ed1_2);
                ed2_1_id = (int)Session.Save(ed2_1);
                ed2_2_id = (int)Session.Save(ed2_2);
                ing1_id  = (int)Session.Save(ing1);
                ing2_id  = (int)Session.Save(ing2);
                tx.Commit();
            }

            // Revision 2 (ing1: ed1_1, ed1_2, ed2_1, ed2_2)
            using (var tx = Session.BeginTransaction())
            {
                ing2.References1.Clear();
                ing2.References2.Clear();
                ing1.References1.Add(ed1_2);
                ing1.References2.Add(ed2_2);
                tx.Commit();
            }

            // Revision 3 (ing1: ed1_1, ed1_2, ed2_1, ed2_2)
            using (var tx = Session.BeginTransaction())
            {
                ed1_1.Data = "ed1_1 bis";
                ed2_2.Data = "ed2_2 bis";
                tx.Commit();
            }

            // Revision 4 (ing1: ed2_2, ing2: ed2_1, ed1_1, ed1_2)
            using (var tx = Session.BeginTransaction())
            {
                ing1.References1.Clear();
                ing2.References1.Add(ed1_1);
                ing2.References1.Add(ed1_2);
                ing1.References2.Remove(ed2_1);
                ing2.References2.Add(ed2_1);
                tx.Commit();
            }
        }