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); }
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(); } }