public void ACommandIsSentToAFollower() { var leader = _servers.SingleOrDefault(x => x.Server.State is Leader); var follower = _servers.FirstOrDefault(x => x.Server.State is Follower); while (leader == null) { ThenANewLeaderIsElected(); leader = _servers.SingleOrDefault(x => x.Server.State is Leader); follower = _servers.FirstOrDefault(x => x.Server.State is Follower); } _fakeCommand = new FakeCommand(Guid.NewGuid()); var urlOfLeader = follower.ServerUrl; var json = JsonConvert.SerializeObject(_fakeCommand, Formatting.None, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); var httpContent = new StringContent(json); using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(urlOfLeader); var response = httpClient.PostAsync("/command", httpContent).Result; response.EnsureSuccessStatusCode(); } //hacky delay var stopWatch = Stopwatch.StartNew(); while (stopWatch.ElapsedMilliseconds < 1000) { } }
private void SendCommandToFollower() { var followerServer = _servers.First(x => x.Value.Node.State is Follower); var command = new FakeCommand(); followerServer.Value.Node.Accept(command); }
private void SendCommandToLeader() { var leaderServer = _servers.First(x => x.Value.Node.State is Leader); var command = new FakeCommand(); leaderServer.Value.Node.Accept(command); }
private async Task SendCommandToFollower() { async Task <bool> SendCommand() { var followerServer = _servers.First(x => x.Value.Node.State is Follower); var command = new FakeCommand(); var response = await followerServer.Value.Node.Accept(command); if (response is ErrorResponse <FakeCommand> ) { return(false); } return(true); } var sentCommand = await WaitFor(25000).Until(async() => await SendCommand()); sentCommand.ShouldBeTrue(); }
public void AFakeCommandIsSentToTheLeader() { var leader = _servers.SingleOrDefault(x => x.Server.State is Leader); while (leader == null) { ThenANewLeaderIsElected(); leader = _servers.SingleOrDefault(x => x.Server.State is Leader); } _fakeCommand = new FakeCommand(Guid.NewGuid()); var urlOfLeader = leader.ServerUrl; var json = JsonConvert.SerializeObject(_fakeCommand, Formatting.None, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); var httpContent = new StringContent(json); using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(urlOfLeader); var response = httpClient.PostAsync("/command", httpContent).Result; response.EnsureSuccessStatusCode(); } }
private async Task SendCommandToLeader() { var leaderServer = GetLeader(); var command = new FakeCommand(); await leaderServer.Value.Node.Accept(command); }