public void PruningState_must_merge_owner_correctly() { var p1 = new PruningInitialized(_node1, ImmutableHashSet <Address> .Empty); var p2 = new PruningInitialized(_node2, ImmutableHashSet <Address> .Empty); var expected = new PruningInitialized(_node1, ImmutableHashSet <Address> .Empty); p1.Merge(p2).Should().Be(expected); p2.Merge(p1).Should().Be(expected); }
public void PruningState_must_merge_seen_correctly() { var p1 = new PruningInitialized(_node1, ImmutableHashSet.Create(_node2.Address)); var p2 = new PruningInitialized(_node1, ImmutableHashSet.Create(_node4.Address)); var expected = new PruningInitialized(_node1, ImmutableHashSet.Create(_node2.Address, _node4.Address)); p1.Merge(p2).Should().Be(expected); p2.Merge(p1).Should().Be(expected); }
public void PruningState_must_merge_state_correctly() { var p1 = new PruningInitialized(_node1, ImmutableHashSet <Address> .Empty); var p2 = new PruningPerformed(DateTime.UtcNow.AddHours(1)); p1.Merge(p2).Should().Be(p2); p2.Merge(p1).Should().Be(p2); var p3 = new PruningPerformed(p2.ObsoleteTime.AddMilliseconds(-1)); p2.Merge(p3).Should().Be(p2); // keep greatest obsoleteTime p3.Merge(p2).Should().Be(p2); }