MCPcopy Create free account
hub / github.com/apache/kvrocks-controller / TestClusterImport

Function TestClusterImport

server/api/cluster_test.go:172–213  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

170}
171
172func TestClusterImport(t *testing.T) {
173 ns := "test-ns"
174 clusterName := "test-cluster-import"
175 handler := &ClusterHandler{s: store.NewClusterStore(engine.NewMock())}
176 // cluster import must be done on a real cluster
177 testNodeAddr := "127.0.0.1:7770"
178 clusterNode := store.NewClusterNode(testNodeAddr, "")
179 cluster, err := store.NewCluster(clusterName, []string{testNodeAddr}, 1)
180 require.NoError(t, err)
181 ctx := context.Background()
182 require.NoError(t, cluster.Reset(ctx))
183 require.NoError(t, clusterNode.SyncClusterInfo(ctx, cluster))
184 defer func() {
185 // clean up the cluster information to avoid affecting other tests
186 require.NoError(t, cluster.Reset(ctx))
187 }()
188
189 var req struct {
190 Nodes []string `json:"nodes"`
191 }
192 req.Nodes = []string{testNodeAddr}
193
194 recorder := httptest.NewRecorder()
195 testCtx := GetTestContext(recorder)
196 body, err := json.Marshal(req)
197 require.NoError(t, err)
198
199 testCtx.Request.Body = io.NopCloser(bytes.NewBuffer(body))
200 testCtx.Params = []gin.Param{{Key: "namespace", Value: ns}, {Key: "cluster", Value: "test-cluster-import"}}
201 handler.Import(testCtx)
202 require.Equal(t, http.StatusOK, recorder.Code)
203
204 var rsp struct {
205 Data struct {
206 Cluster *store.Cluster `json:"cluster"`
207 } `json:"data"`
208 }
209 require.NoError(t, json.Unmarshal(recorder.Body.Bytes(), &rsp))
210 require.Len(t, rsp.Data.Cluster.Shards, 1)
211 require.Len(t, rsp.Data.Cluster.Shards[0].Nodes, 1)
212 require.Equal(t, testNodeAddr, rsp.Data.Cluster.Shards[0].Nodes[0].Addr())
213}
214
215func TestClusterMigrateData(t *testing.T) {
216 ns := "test-ns"

Callers

nothing calls this directly

Calls 11

ResetMethod · 0.95
SyncClusterInfoMethod · 0.95
ImportMethod · 0.95
NewClusterStoreFunction · 0.92
NewMockFunction · 0.92
NewClusterNodeFunction · 0.92
NewClusterFunction · 0.92
GetTestContextFunction · 0.85
EqualMethod · 0.80
LenMethod · 0.80
AddrMethod · 0.65

Tested by

no test coverage detected