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)); ClusterEvent.DiffUnreachable(g1, g2, selfDummyAddress) .Should() .BeEquivalentTo(ImmutableList.Create(new ClusterEvent.UnreachableMember(cUp))); // never include self member in unreachable ClusterEvent.DiffUnreachable(g1, g2, cUp.UniqueAddress) .Should() .BeEquivalentTo(ImmutableList.Create <ClusterEvent.UnreachableMember>()); ClusterEvent.DiffReachable(g1, g2, selfDummyAddress) .Should() .BeEquivalentTo(ImmutableList.Create(new ClusterEvent.ReachableMember(bUp))); // never include self member in reachable ClusterEvent.DiffReachable(g1, g2, bUp.UniqueAddress) .Should() .BeEquivalentTo(ImmutableList.Create <ClusterEvent.ReachableMember>()); }
public void DomainEventMustBeProducedForMembersBecomingReachableAfterUnreachable() { 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)); }