public void TestMergeAllDirectoryEntries() { var registry = Join3Nodes(); var leaderRegisteredNodesToMerge = new List <Node>(); leaderRegisteredNodesToMerge.Add(NodeOf(1)); leaderRegisteredNodesToMerge.Add(NodeOf(2)); leaderRegisteredNodesToMerge.Add(NodeOf(4)); var interest = new MockRegistryInterest(); registry.RegisterRegistryInterest(interest); registry.MergeAllDirectoryEntries(leaderRegisteredNodesToMerge); Assert.Equal(1, interest.InformMergedAllDirectoryEntriesCheck); Assert.Equal(3, interest.LiveNodes.Count()); // 1, 2, 4 Assert.Equal(2, interest.MergeResults.Count()); // 4 joined, 3 left var list = interest.MergeResults.ToList(); var inspectable1 = list[0]; var inspectable2 = list[1]; Assert.Equal(IdOf(3), inspectable1.Node.Id); Assert.True(inspectable1.Left); Assert.Equal(IdOf(4), inspectable2.Node.Id); Assert.True(inspectable2.Joined); }
public void TestPromoteElectedLeader() { var registry = Join3Nodes(); var interest = new MockRegistryInterest(); registry.RegisterRegistryInterest(interest); registry.Join(NodeOf(4)); registry.DeclareLeaderAs(IdOf(3)); Assert.Equal(1, interest.InformCurrentLeaderCheck); registry.PromoteElectedLeader(IdOf(4)); Assert.Equal(1, interest.InformLeaderDemotedCheck); Assert.Equal(3, interest.InformCurrentLeaderCheck); Assert.Equal(4, registry.CurrentLeader.Id.Value); }