public void GivenFaceToFaceCommunication_WhenDeriving_ThenInvolvedPartiesAreDerived() { var owner = new PersonBuilder(this.DatabaseSession).WithLastName("owner").Build(); var participant1 = new PersonBuilder(this.DatabaseSession).WithLastName("participant1").Build(); var participant2 = new PersonBuilder(this.DatabaseSession).WithLastName("participant2").Build(); this.DatabaseSession.Derive(true); this.DatabaseSession.Commit(); var communication = new FaceToFaceCommunicationBuilder(this.DatabaseSession) .WithOwner(owner) .WithSubject("subject") .WithParticipant(participant1) .WithParticipant(participant2) .WithActualStart(DateTime.UtcNow) .Build(); this.DatabaseSession.Derive(true); Assert.AreEqual(3, communication.InvolvedParties.Count); Assert.Contains(participant1, communication.InvolvedParties); Assert.Contains(participant2, communication.InvolvedParties); Assert.Contains(owner, communication.InvolvedParties); communication.AddParticipant(owner); this.DatabaseSession.Derive(true); Assert.AreEqual(3, communication.InvolvedParties.Count); }