public void DomainEvents_must_be_produced_for_members_becoming_reachable_after_unreachable()
{
var reachability1 = Reachability.Empty.
Unreachable(aUp.UniqueAddress, cUp.UniqueAddress).Reachable(aUp.UniqueAddress, cUp.UniqueAddress).
Unreachable(aUp.UniqueAddress, eUp.UniqueAddress).
Unreachable(aUp.UniqueAddress, bUp.UniqueAddress);
var g1 = new Gossip(ImmutableSortedSet.Create(aUp, bUp, cUp, eUp), new GossipOverview(reachability1));
var reachability2 = reachability1.
Unreachable(aUp.UniqueAddress, cUp.UniqueAddress).
Reachable(aUp.UniqueAddress, bUp.UniqueAddress);
var g2 = new Gossip(ImmutableSortedSet.Create(aUp, cUp, bUp, eUp), new GossipOverview(reachability2));
Assert.Equal(ImmutableList.Create(new ClusterEvent.UnreachableMember(cUp)), ClusterEvent.DiffUnreachable(g1, g2));
Assert.Equal(ImmutableList.Create(new ClusterEvent.ReachableMember(bUp)), ClusterEvent.DiffReachable(g1,g2));
}