1323
TEST_F(MediaStoreTest, transaction) {
1324
MediaStore store(":memory:", MS_READ_WRITE);
1326
// Run a transaction without committing: file not added.
1328
MediaStoreTransaction txn = store.beginTransaction();
1329
store.insert(MediaFileBuilder("/one.mp3").setType(AudioMedia));
1331
EXPECT_EQ(0, store.size());
1332
EXPECT_THROW(store.lookup("/one.mp3"), std::runtime_error);
1334
// Commit two files in a transaction, then one file in a second
1335
// transaction, and leave the last uncommitted.
1337
MediaStoreTransaction txn = store.beginTransaction();
1338
store.insert(MediaFileBuilder("/one.mp3").setType(AudioMedia));
1339
store.insert(MediaFileBuilder("/two.mp3").setType(AudioMedia));
1341
store.insert(MediaFileBuilder("/three.mp3").setType(AudioMedia));
1343
store.insert(MediaFileBuilder("/four.mp3").setType(AudioMedia));
1345
EXPECT_EQ(3, store.size());
1346
store.lookup("/one.mp3");
1347
store.lookup("/two.mp3");
1348
store.lookup("/three.mp3");
1349
EXPECT_THROW(store.lookup("/four.mp3"), std::runtime_error);
1323
1352
int main(int argc, char **argv) {
1324
1353
::testing::InitGoogleTest(&argc, argv);
1325
1354
return RUN_ALL_TESTS();