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

Function TestReplicatorRevocationsFromZero

rest/revocation_test.go:2126–2239  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2124}
2125
2126func TestReplicatorRevocationsFromZero(t *testing.T) {
2127 defer db.SuspendSequenceBatching()()
2128
2129 base.RequireNumTestBuckets(t, 2)
2130
2131 sgrRunner := NewSGRTestRunner(t)
2132 sgrRunner.Run(func(t *testing.T) {
2133 // Passive
2134 _, rt2 := InitScenario(t, nil)
2135 defer rt2.Close()
2136 rt2ds := rt2.GetSingleDataStore()
2137
2138 // Active
2139 rt1 := NewRestTester(t,
2140 &RestTesterConfig{
2141 CustomTestBucket: base.GetTestBucket(t),
2142 SyncFn: channels.DocChannelsSyncFunction,
2143 })
2144 defer rt1.Close()
2145 ctx1 := rt1.Context()
2146
2147 resp := rt2.SendAdminRequest("PUT", "/db/_user/user", GetUserPayload(t, "user", "letmein", "", rt2ds, []string{"A", "B"}, nil))
2148 RequireStatus(t, resp, http.StatusOK)
2149
2150 // Setup replicator
2151 srv := httptest.NewServer(rt2.TestPublicHandler())
2152 defer srv.Close()
2153
2154 passiveDBURL, err := url.Parse(srv.URL + "/db")
2155 require.NoError(t, err)
2156
2157 passiveDBURL.User = url.UserPassword("user", "letmein")
2158 id := SafeDocumentName(t, t.Name())
2159 sgwStats, err := base.SyncGatewayStats.NewDBStats(id, false, false, false, nil, nil)
2160 require.NoError(t, err)
2161 dbstats, err := sgwStats.DBReplicatorStats(id)
2162 require.NoError(t, err)
2163
2164 activeReplCfg := &db.ActiveReplicatorConfig{
2165 ID: id,
2166 Direction: db.ActiveReplicatorTypePull,
2167 RemoteDBURL: passiveDBURL,
2168 ActiveDB: &db.Database{
2169 DatabaseContext: rt1.GetDatabase(),
2170 },
2171 Continuous: false,
2172 PurgeOnRemoval: true,
2173 ReplicationStatsMap: dbstats,
2174 CollectionsEnabled: base.TestsUseNamedCollections(),
2175 SupportedBLIPProtocols: sgrRunner.SupportedSubprotocols,
2176 }
2177
2178 ar, err := db.NewActiveReplicator(ctx1, activeReplCfg)
2179 require.NoError(t, err)
2180
2181 _ = rt2.PutDoc("docA", `{"channels": ["A"]}`)
2182 _ = rt2.PutDoc("docA1", `{"channels": ["A"]}`)
2183 _ = rt2.PutDoc("docA2", `{"channels": ["A"]}`)

Callers

nothing calls this directly

Calls 15

RunMethod · 0.95
CloseMethod · 0.95
ContextMethod · 0.95
SendAdminRequestMethod · 0.95
GetDatabaseMethod · 0.95
StartMethod · 0.95
WaitForChangesMethod · 0.95
WaitForConditionMethod · 0.95
ResetMethod · 0.95
SuspendSequenceBatchingFunction · 0.92
RequireNumTestBucketsFunction · 0.92

Tested by

no test coverage detected