protected override void Initialize() { var darkCharacter = new DarkCharacter { Id = id, Kills = 1 }; // Revision 1 - empty element collection using (var tx = Session.BeginTransaction()) { Session.Save(darkCharacter); tx.Commit(); } // Revision 2 - adding collection element using (var tx = Session.BeginTransaction()) { darkCharacter.Names.Add(new Name { FirstName = "Action", LastName = "Hank" }); tx.Commit(); } // Revision 3 - adding another collection element using (var tx = Session.BeginTransaction()) { darkCharacter.Names.Add(new Name { FirstName = "Green", LastName = "Lantern" }); tx.Commit(); } // Revision 4 - removing single collection element using (var tx = Session.BeginTransaction()) { darkCharacter.Names.Remove(new Name { FirstName = "Action", LastName = "Hank" }); tx.Commit(); } // Revision 5 - removing all collection elements using (var tx = Session.BeginTransaction()) { darkCharacter.Names.Clear(); tx.Commit(); } }
public void VerifyHistoryOfCharacter() { var darkCharacter = new DarkCharacter { Id = id, Kills = 1 }; var ver1 = AuditReader().Find <DarkCharacter>(id, 1); ver1.Should().Be.EqualTo(darkCharacter); ver1.Names.Should().Be.Empty(); darkCharacter.Names.Add(new Name { FirstName = "Action", LastName = "Hank" }); var ver2 = AuditReader().Find <DarkCharacter>(id, 2); ver2.Should().Be.EqualTo(darkCharacter); ver2.Names.Should().Have.SameValuesAs(darkCharacter.Names); darkCharacter.Names.Add(new Name { FirstName = "Green", LastName = "Lantern" }); var ver3 = AuditReader().Find <DarkCharacter>(id, 3); ver3.Should().Be.EqualTo(darkCharacter); ver3.Names.Should().Have.SameValuesAs(darkCharacter.Names); darkCharacter.Names.Remove(new Name { FirstName = "Action", LastName = "Hank" }); var ver4 = AuditReader().Find <DarkCharacter>(id, 4); ver4.Should().Be.EqualTo(darkCharacter); ver4.Names.Should().Have.SameValuesAs(darkCharacter.Names); darkCharacter.Names.Clear(); var ver5 = AuditReader().Find <DarkCharacter>(id, 5); ver5.Should().Be.EqualTo(darkCharacter); ver5.Names.Should().Have.SameValuesAs(darkCharacter.Names); }