public void DomainEvents_must_be_produced_for_leader_changes()
{
var t1 = Converge(new Gossip(ImmutableSortedSet.Create(aUp, bUp, eJoining)));
var t2 = Converge(new Gossip(ImmutableSortedSet.Create(bUp, eJoining)));
var g1 = t1.Item1;
var g2 = t2.Item1;
var s2 = t2.Item2;
Assert.Equal(ImmutableList.Create(new ClusterEvent.MemberRemoved(aRemoved, MemberStatus.Up)), ClusterEvent.DiffMemberEvents(g1, g2));
Assert.Equal(ImmutableList.Create<ClusterEvent.UnreachableMember>(), ClusterEvent.DiffUnreachable(g1, g2));
Assert.Equal(ImmutableList.Create(new ClusterEvent.SeenChanged(true, s2.Select(a => a.Address).ToImmutableHashSet())), ClusterEvent.DiffSeen(g1, g2, selfDummyAddress));
Assert.Equal(ImmutableList.Create(new ClusterEvent.LeaderChanged(bUp.Address)), ClusterEvent.DiffLeader(g1, g2, selfDummyAddress));
}