Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
vishalnayak committed Apr 23, 2021
1 parent cc425d4 commit 6114e57
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,99 @@ func TestAliveServers(t *testing.T) {
require.Equal(t, expected, actual)
}

func TestGatherNextStateInputsLeaderFromDelegate(t *testing.T){
mtime := NewMockTimeProvider(t)
mraft := NewMockRaft(t)
mdel := NewMockApplicationIntegration(t)

ap := New(mraft, mdel, withTimeProvider(mtime))
ap.startTime = time.Date(2020, 11, 2, 12, 0, 0, 0, time.UTC)
ap.state = &State{Healthy: false}

now := time.Date(2020, 11, 02, 12, 0, 0, 5000, time.UTC)
mtime.On("Now").Return(now).Once()

conf := &Config{
CleanupDeadServers: true,
LastContactThreshold: 200 * time.Millisecond,
MaxTrailingLogs: 200,
MinQuorum: 3,
ServerStabilizationTime: 10 * time.Second,
}

servers := map[raft.ServerID]*Server{
"7875975d-d54b-49c1-a400-9fefcc706c67": {
ID: "7875975d-d54b-49c1-a400-9fefcc706c67",
Name: "node1",
Address: "198.18.0.1:8300",
NodeStatus: NodeAlive,
Version: "1.9.0",
RaftVersion: 3,
IsLeader: true,
},
"ecfc5237-63c3-4b09-94b9-d5682d9ae5b1": {
ID: "ecfc5237-63c3-4b09-94b9-d5682d9ae5b1",
Name: "node2",
Address: "198.18.0.2:8300",
NodeStatus: NodeAlive,
Version: "1.9.0",
RaftVersion: 3,
},
"e72eb8da-604d-47cd-bd7f-69ec120ea2b7": {
ID: "e72eb8da-604d-47cd-bd7f-69ec120ea2b7",
Name: "node3",
Address: "198.18.0.3:8300",
NodeStatus: NodeAlive,
Version: "1.9.0",
RaftVersion: 3,
},
}
var lastIndex uint64 = 1024
var lastTerm uint64 = 3

serverStats := map[raft.ServerID]*ServerStats{
"7875975d-d54b-49c1-a400-9fefcc706c67": {
LastTerm: lastTerm,
LastIndex: lastIndex,
},
"ecfc5237-63c3-4b09-94b9-d5682d9ae5b1": {
LastContact: 10 * time.Millisecond,
LastTerm: lastTerm,
LastIndex: 1000,
},
"e72eb8da-604d-47cd-bd7f-69ec120ea2b7": {
LastContact: 15 * time.Millisecond,
LastTerm: lastTerm,
LastIndex: 999,
},
}

var leaderID raft.ServerID = "7875975d-d54b-49c1-a400-9fefcc706c67"

mdel.On("AutopilotConfig").Return(conf).Once()
mraft.On("GetConfiguration").Return(&raftConfigFuture{config: test3VoterRaftConfiguration}).Once()
mdel.On("KnownServers").Return(servers).Once()
mraft.On("LastIndex").Return(lastIndex).Once()
mraft.On("Stats").Return(map[string]string{"last_log_term": "3"}).Once()
mdel.On("FetchServerStats", mock.Anything, servers).Return(serverStats).Once()

expected := &nextStateInputs{
Now: now,
StartTime: ap.startTime,
Config: conf,
RaftConfig: &test3VoterRaftConfiguration,
KnownServers: servers,
LatestIndex: lastIndex,
LastTerm: lastTerm,
FetchedStats: serverStats,
LeaderID: leaderID,
}

actual, err := ap.gatherNextStateInputs(context.Background())
require.NoError(t, err)
require.Equal(t, expected, actual)
}

func TestGatherNextStateInputs(t *testing.T) {
mtime := NewMockTimeProvider(t)
mraft := NewMockRaft(t)
Expand Down

0 comments on commit 6114e57

Please sign in to comment.