(t *testing.T)
| 173 | } |
| 174 | |
| 175 | func 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: |
nothing calls this directly
no test coverage detected