public void A_gossip_must_merge_seen_table_correctly() { var vclockNode = VectorClock.Node.Create("something"); var g1 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(b1.UniqueAddress); var g2 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(c1.UniqueAddress); var g3 = g1.Copy(version: g2.Version).Seen(d1.UniqueAddress); Action <Gossip> checkMerge = merged => { var seen = merged.Overview.Seen; seen.Count.Should().Be(0); merged.SeenByNode(a1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(b1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(c1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(d1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(e1.UniqueAddress).Should().BeFalse(); }; checkMerge(g3.Merge(g2)); checkMerge(g2.Merge(g3)); }
public void AGossipMustMergeSeenTableCorrectly() { var vclockNode = VectorClock.Node.Create("something"); var g1 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(b1.UniqueAddress); var g2 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(c1.UniqueAddress); var g3 = g1.Copy(version: g2.Version).Seen(d1.UniqueAddress); Action <Gossip> checkMerge = (m) => { var seen = m.Overview.Seen; Assert.Equal(0, seen.Count()); Assert.False(m.SeenByNode(a1.UniqueAddress)); Assert.False(m.SeenByNode(b1.UniqueAddress)); Assert.False(m.SeenByNode(c1.UniqueAddress)); Assert.False(m.SeenByNode(d1.UniqueAddress)); Assert.False(m.SeenByNode(e1.UniqueAddress)); }; checkMerge(g3.Merge(g2)); checkMerge(g2.Merge(g3)); }
public void AGossipMustMergeSeenTableCorrectly() { var vclockNode = VectorClock.Node.Create("something"); var g1 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(b1.UniqueAddress); var g2 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(c1.UniqueAddress); var g3 = g1.Copy(version: g2.Version).Seen(d1.UniqueAddress); Action<Gossip> checkMerge = (m) => { var seen = m.Overview.Seen; Assert.Equal(0, seen.Count()); Assert.False(m.SeenByNode(a1.UniqueAddress)); Assert.False(m.SeenByNode(b1.UniqueAddress)); Assert.False(m.SeenByNode(c1.UniqueAddress)); Assert.False(m.SeenByNode(d1.UniqueAddress)); Assert.False(m.SeenByNode(e1.UniqueAddress)); }; checkMerge(g3.Merge(g2)); checkMerge(g2.Merge(g3)); }
public void A_gossip_must_merge_seen_table_correctly() { var vclockNode = VectorClock.Node.Create("something"); var g1 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(b1.UniqueAddress); var g2 = new Gossip(ImmutableSortedSet.Create(a1, b1, c1, d1)).Increment(vclockNode) .Seen(a1.UniqueAddress) .Seen(c1.UniqueAddress); var g3 = g1.Copy(version: g2.Version).Seen(d1.UniqueAddress); Action<Gossip> checkMerge = merged => { var seen = merged.Overview.Seen; seen.Count.Should().Be(0); merged.SeenByNode(a1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(b1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(c1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(d1.UniqueAddress).Should().BeFalse(); merged.SeenByNode(e1.UniqueAddress).Should().BeFalse(); }; checkMerge(g3.Merge(g2)); checkMerge(g2.Merge(g3)); }