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

Function TestDatabase

db/database_test.go:175–301  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

173}
174
175func TestDatabase(t *testing.T) {
176
177 base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll)
178
179 db, ctx := setupTestDB(t)
180 defer db.Close(ctx)
181 collection, ctx := GetSingleDatabaseCollectionWithUser(ctx, t, db)
182
183 // Test creating & updating a document:
184 log.Printf("Create rev 1...")
185 body := Body{"key1": "value1", "key2": 1234}
186 rev1id, doc, err := collection.Put(ctx, "doc1", body)
187 body[BodyId] = doc.ID
188 body[BodyRev] = rev1id
189 assert.NoError(t, err, "Couldn't create document")
190 assert.Equal(t, "1-cb0c9a22be0e5a1b01084ec019defa81", rev1id)
191
192 log.Printf("Create rev 2...")
193 body["key1"] = "new value"
194 body["key2"] = int64(4321)
195 rev2id, _, err := collection.Put(ctx, "doc1", body)
196 body[BodyId] = "doc1"
197 body[BodyRev] = rev2id
198 assert.NoError(t, err, "Couldn't update document")
199 assert.Equal(t, "2-488724414d0ed6b398d6d2aeb228d797", rev2id)
200
201 // Retrieve the document:
202 log.Printf("Retrieve doc...")
203 gotbody, err := collection.Get1xBody(ctx, "doc1")
204 assert.NoError(t, err, "Couldn't get document")
205 AssertEqualBodies(t, body, gotbody)
206
207 log.Printf("Retrieve rev 1...")
208 gotbody, err = collection.Get1xRevBody(ctx, "doc1", rev1id, false, nil)
209 assert.NoError(t, err, "Couldn't get document with rev 1")
210 expectedResult := Body{"key1": "value1", "key2": 1234, BodyId: "doc1", BodyRev: rev1id}
211 AssertEqualBodies(t, expectedResult, gotbody)
212
213 log.Printf("Retrieve rev 2...")
214 gotbody, err = collection.Get1xRevBody(ctx, "doc1", rev2id, false, nil)
215 assert.NoError(t, err, "Couldn't get document with rev")
216 AssertEqualBodies(t, body, gotbody)
217
218 gotbody, err = collection.Get1xRevBody(ctx, "doc1", "bogusrev", false, nil)
219 status, _ := base.ErrorAsHTTPStatus(err)
220 assert.Equal(t, 404, status)
221 require.Nil(t, gotbody)
222
223 // Test the _revisions property:
224 log.Printf("Check _revisions...")
225 gotbody, err = collection.Get1xRevBody(ctx, "doc1", rev2id, true, nil)
226 require.NoError(t, err)
227 revisions := gotbody[BodyRevisions].(Revisions)
228 assert.Equal(t, 2, revisions[RevisionsStart])
229 assert.Equal(t, []string{"488724414d0ed6b398d6d2aeb228d797",
230 "cb0c9a22be0e5a1b01084ec019defa81"}, revisions[RevisionsIds])
231
232 // Test RevDiff:

Callers

nothing calls this directly

Calls 13

SetUpTestLoggingFunction · 0.92
ErrorAsHTTPStatusFunction · 0.92
setupTestDBFunction · 0.85
AssertEqualBodiesFunction · 0.85
Get1xBodyMethod · 0.80
Get1xRevBodyMethod · 0.80
RevDiffMethod · 0.80
CheckProposedRevMethod · 0.80
CloseMethod · 0.65
PutMethod · 0.65

Tested by

no test coverage detected