diff options
author | Greg Soltis <gsoltis@google.com> | 2018-03-22 09:51:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-22 09:51:30 -0700 |
commit | 7a512f4a367aa4c2e75b53531d9b92ad37f130fe (patch) | |
tree | 9b0e2e1d14193ef1eedccefdc089d14be119a783 /Firestore/Example/Tests | |
parent | cf630bfee60694f9bf1577972df169badda0b6e0 (diff) |
Add `ToString()` to `LevelDbTransaction` (#946)
* Initial plumbing for leveldb local parts
* Add model::BatchId
* Port leveldb_key.{h,cc}
* Add string StartsWith
* Add leveldb_key_test.cc to the project
* Revert back to using leveldb::Slice for read/describe
These operations universally operate on keys obtained from leveldb so
it's actually unhelpful to force all the callers to make
absl::string_views from them.
* Start work on ToString for transactions
* Add ToString() method to LevelDbTransaction
* Style
* lint
* Revert addition of util::StartsWith
Diffstat (limited to 'Firestore/Example/Tests')
-rw-r--r-- | Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm index 704f8c6..2a1efb0 100644 --- a/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm +++ b/Firestore/Example/Tests/Local/FSTLevelDBTransactionTests.mm @@ -20,7 +20,9 @@ #include <absl/strings/string_view.h> #include <leveldb/db.h> #import "Firestore/Example/Tests/Local/FSTPersistenceTestHelpers.h" +#import "Firestore/Protos/objc/firestore/local/Mutation.pbobjc.h" #import "Firestore/Protos/objc/firestore/local/Target.pbobjc.h" +#include "Firestore/core/src/firebase/firestore/local/leveldb_key.h" NS_ASSUME_NONNULL_BEGIN @@ -29,6 +31,7 @@ using leveldb::Options; using leveldb::ReadOptions; using leveldb::WriteOptions; using leveldb::Status; +using firebase::firestore::local::LevelDbMutationKey; using firebase::firestore::local::LevelDbTransaction; @interface FSTLevelDBTransactionTests : XCTestCase @@ -269,6 +272,30 @@ using firebase::firestore::local::LevelDbTransaction; XCTAssertFalse(it->Valid()); } +- (void)testToString { + std::string key = LevelDbMutationKey::Key("user1", 42); + FSTPBWriteBatch *message = [FSTPBWriteBatch message]; + message.batchId = 42; + + LevelDbTransaction transaction(_db.get()); + std::string description = transaction.ToString(); + XCTAssertEqual(description, "<LevelDbTransaction: 0 changes (0 bytes):>"); + + transaction.Put(key, message); + description = transaction.ToString(); + XCTAssertEqual(description, + "<LevelDbTransaction: 1 changes (2 bytes):\n" + " - Put [mutation: user_id=user1 batch_id=42] (2 bytes)>"); + + std::string key2 = LevelDbMutationKey::Key("user1", 43); + transaction.Delete(key2); + description = transaction.ToString(); + XCTAssertEqual(description, + "<LevelDbTransaction: 2 changes (2 bytes):\n" + " - Delete [mutation: user_id=user1 batch_id=43]\n" + " - Put [mutation: user_id=user1 batch_id=42] (2 bytes)>"); +} + @end NS_ASSUME_NONNULL_END |