MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestReplicateManagerNodes

Function TestReplicateManagerNodes

db/sg_replicate_cfg_test.go:89–142  ·  view source on GitHub ↗

Test node operations on SGReplicateManager

(t *testing.T)

Source from the content-addressed store, hash-verified

87
88// Test node operations on SGReplicateManager
89func TestReplicateManagerNodes(t *testing.T) {
90
91 ctx := base.TestCtx(t)
92 testBucket := base.GetTestBucket(t)
93 defer testBucket.Close(ctx)
94
95 testCfg, err := base.NewCfgSG(ctx, testBucket.GetSingleDataStore(), "")
96 require.NoError(t, err)
97
98 manager, err := NewSGReplicateManager(ctx, &DatabaseContext{Name: "test"}, testCfg)
99 require.NoError(t, err)
100 defer manager.Stop()
101
102 err = manager.registerNodeForHost("node1", "host1")
103 require.NoError(t, err)
104
105 nodes, err := manager.getNodes()
106 require.NoError(t, err)
107 assert.Len(t, nodes, 1)
108
109 err = manager.registerNodeForHost("node2", "host2")
110 require.NoError(t, err)
111
112 nodes, err = manager.getNodes()
113 require.NoError(t, err)
114 assert.Len(t, nodes, 2)
115
116 // re-adding an existing node is a no-op
117 err = manager.registerNodeForHost("node1", "host1")
118 require.NoError(t, err)
119
120 nodes, err = manager.getNodes()
121 require.NoError(t, err)
122 assert.Len(t, nodes, 2)
123
124 // Remove node
125 err = manager.RemoveNode("node1")
126 require.NoError(t, err)
127
128 nodes, err = manager.getNodes()
129 require.NoError(t, err)
130 require.Len(t, nodes, 1)
131 node2, ok := nodes["node2"]
132 require.True(t, ok)
133 require.Equal(t, node2.UUID, "node2")
134
135 // Removing an already removed node is a no-op
136 err = manager.RemoveNode("node1")
137 require.NoError(t, err)
138
139 replications, err := manager.GetReplications()
140 require.NoError(t, err)
141 assert.Len(t, replications, 0)
142}
143
144// Test concurrent node operations on SGReplicateManager
145func TestReplicateManagerConcurrentNodeOperations(t *testing.T) {

Callers

nothing calls this directly

Calls 13

TestCtxFunction · 0.92
GetTestBucketFunction · 0.92
NewCfgSGFunction · 0.92
NewSGReplicateManagerFunction · 0.85
registerNodeForHostMethod · 0.80
getNodesMethod · 0.80
CloseMethod · 0.65
StopMethod · 0.65
LenMethod · 0.65
GetSingleDataStoreMethod · 0.45
RemoveNodeMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected