public void AllPeers_and_AllVotingPeers_can_be_persistantly_saved_and_loaded() { var cancellationTokenSource = new CancellationTokenSource(); var path = "test" + Guid.NewGuid(); try { var expectedAllVotingPeers = new List <string> { "Node123", "Node1", "Node2", "NodeG", "NodeB", "NodeABC" }; using (var options = StorageEnvironmentOptions.ForPath(path)) { using (var persistentState = new PersistentState("self", options, cancellationTokenSource.Token) { CommandSerializer = new JsonCommandSerializer() }) { var currentConfiguration = persistentState.GetCurrentTopology(); Assert.Empty(currentConfiguration.AllVotingNodes); var currentTopology = new Topology(new Guid("355a589b-cadc-463d-a515-5add2ea47205"), expectedAllVotingPeers.Select(x => new NodeConnectionInfo { Name = x }), Enumerable.Empty <NodeConnectionInfo>(), Enumerable.Empty <NodeConnectionInfo>()); persistentState.SetCurrentTopology(currentTopology, 1); } } using (var options = StorageEnvironmentOptions.ForPath(path)) { using (var persistentState = new PersistentState("self", options, cancellationTokenSource.Token) { CommandSerializer = new JsonCommandSerializer() }) { var currentConfiguration = persistentState.GetCurrentTopology(); Assert.Equal(expectedAllVotingPeers.Count, currentConfiguration.AllVotingNodes.Count()); foreach (var nodeConnectionInfo in currentConfiguration.AllVotingNodes) { Assert.True(expectedAllVotingPeers.Contains(nodeConnectionInfo.Name)); } } } } finally { new DirectoryInfo(path).Delete(true); } }