Test node operations on SGReplicateManager
(t *testing.T)
| 22 | |
| 23 | // Test node operations on SGReplicateManager |
| 24 | func TestReplicateManagerReplications(t *testing.T) { |
| 25 | |
| 26 | ctx := base.TestCtx(t) |
| 27 | testBucket := base.GetTestBucket(t) |
| 28 | defer testBucket.Close(ctx) |
| 29 | |
| 30 | testCfg, err := base.NewCfgSG(ctx, testBucket.GetSingleDataStore(), "") |
| 31 | require.NoError(t, err) |
| 32 | |
| 33 | manager, err := NewSGReplicateManager(ctx, &DatabaseContext{Name: "test"}, testCfg) |
| 34 | require.NoError(t, err) |
| 35 | defer manager.Stop() |
| 36 | |
| 37 | replication1_id := "replication1" |
| 38 | err = manager.AddReplication(testReplicationCfg(replication1_id, "")) |
| 39 | require.NoError(t, err) |
| 40 | |
| 41 | r, err := manager.GetReplication(replication1_id) |
| 42 | require.NoError(t, err) |
| 43 | assert.Equal(t, replication1_id, r.ID) |
| 44 | |
| 45 | // Request non-existent replication |
| 46 | _, err = manager.GetReplication("dne") |
| 47 | require.Error(t, err, base.ErrNotFound) |
| 48 | |
| 49 | // Attempt to add existing replication |
| 50 | err = manager.AddReplication(testReplicationCfg(replication1_id, "")) |
| 51 | require.Error(t, err, base.ErrAlreadyExists) |
| 52 | |
| 53 | // Add a second replication |
| 54 | replication2_id := "replication2" |
| 55 | err = manager.AddReplication(testReplicationCfg(replication2_id, "")) |
| 56 | require.NoError(t, err) |
| 57 | |
| 58 | r, err = manager.GetReplication(replication1_id) |
| 59 | require.NoError(t, err) |
| 60 | assert.Equal(t, replication1_id, r.ID) |
| 61 | |
| 62 | replications, err := manager.GetReplications() |
| 63 | require.NoError(t, err) |
| 64 | assert.Len(t, replications, 2) |
| 65 | |
| 66 | // Remove replication |
| 67 | err = manager.DeleteReplication(replication1_id) |
| 68 | require.NoError(t, err) |
| 69 | replications, err = manager.GetReplications() |
| 70 | require.NoError(t, err) |
| 71 | assert.Len(t, replications, 1) |
| 72 | |
| 73 | // Remove non-existent replication |
| 74 | err = manager.DeleteReplication(replication1_id) |
| 75 | require.Error(t, base.ErrNotFound, err) |
| 76 | replications, err = manager.GetReplications() |
| 77 | require.NoError(t, err) |
| 78 | assert.Len(t, replications, 1) |
| 79 | |
| 80 | // Remove last replication |
| 81 | err = manager.DeleteReplication(replication2_id) |
nothing calls this directly
no test coverage detected