Add test for demotion in request vote.

pull/820/head
Ben Johnson 2013-04-29 20:42:58 -06:00
parent d9268cdeb1
commit fd6090216a
1 changed files with 3 additions and 2 deletions

View File

@ -26,13 +26,14 @@ func TestServerRequestVote(t *testing.T) {
// Ensure that a vote request is denied if it comes from an old term. // Ensure that a vote request is denied if it comes from an old term.
func TestServerRequestVoteDeniedForStaleTerm(t *testing.T) { func TestServerRequestVoteDeniedForStaleTerm(t *testing.T) {
server := newTestServer("1") server := newTestServer("1")
server.state = Leader
server.currentTerm = 2 server.currentTerm = 2
resp := server.RequestVote(NewRequestVoteRequest(1, "foo", 0, 0)) resp := server.RequestVote(NewRequestVoteRequest(1, "foo", 0, 0))
if !(resp.Term == 2 && !resp.VoteGranted) { if !(resp.Term == 2 && !resp.VoteGranted) {
t.Fatalf("Invalid request vote response: %v/%v", resp.Term, resp.VoteGranted) t.Fatalf("Invalid request vote response: %v/%v", resp.Term, resp.VoteGranted)
} }
if server.currentTerm != 2 { if server.currentTerm != 2 && server.state != Follower {
t.Fatalf("Server did not update term: %v", server.currentTerm) t.Fatalf("Server did not update term and demote: %v / %v", server.currentTerm, server.state)
} }
} }