From bde743ed25166a0b320ae157bfb1d68064f531c9 Mon Sep 17 00:00:00 2001 From: Gil Date: Tue, 3 Oct 2017 08:55:22 -0700 Subject: Release 4.3.0 (#327) Initial release of Firestore at 0.8.0 Bump FirebaseCommunity to 0.1.3 --- .../Local/FSTLevelDBRemoteDocumentCacheTests.mm | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm (limited to 'Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm') diff --git a/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm b/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm new file mode 100644 index 0000000..a6af103 --- /dev/null +++ b/Firestore/Example/Tests/Local/FSTLevelDBRemoteDocumentCacheTests.mm @@ -0,0 +1,78 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FSTRemoteDocumentCacheTests.h" + +#include + +#import "Local/FSTLevelDB.h" +#import "Local/FSTLevelDBKey.h" +#include "Port/ordered_code.h" + +#import "FSTPersistenceTestHelpers.h" + +NS_ASSUME_NONNULL_BEGIN + +using leveldb::WriteOptions; +using Firestore::OrderedCode; + +// A dummy document value, useful for testing code that's known to examine only document keys. +static const char *kDummy = "1"; + +/** + * The tests for FSTLevelDBRemoteDocumentCache are performed on the FSTRemoteDocumentCache + * protocol in FSTRemoteDocumentCacheTests. This class is merely responsible for setting up and + * tearing down the @a remoteDocumentCache. + */ +@interface FSTLevelDBRemoteDocumentCacheTests : FSTRemoteDocumentCacheTests +@end + +@implementation FSTLevelDBRemoteDocumentCacheTests { + FSTLevelDB *_db; +} + +- (void)setUp { + [super setUp]; + _db = [FSTPersistenceTestHelpers levelDBPersistence]; + self.persistence = _db; + self.remoteDocumentCache = [self.persistence remoteDocumentCache]; + + // Write a couple dummy rows that should appear before/after the remote_documents table to make + // sure the tests are unaffected. + [self writeDummyRowWithSegments:@[ @"remote_documentr", @"foo", @"bar" ]]; + [self writeDummyRowWithSegments:@[ @"remote_documentsa", @"foo", @"bar" ]]; +} + +- (void)tearDown { + [self.remoteDocumentCache shutdown]; + self.remoteDocumentCache = nil; + self.persistence = nil; + _db = nil; + [super tearDown]; +} + +- (void)writeDummyRowWithSegments:(NSArray *)segments { + std::string key; + for (NSString *segment in segments) { + OrderedCode::WriteString(&key, segment.UTF8String); + } + + _db.ptr->Put(WriteOptions(), key, kDummy); +} + +@end + +NS_ASSUME_NONNULL_END -- cgit v1.2.3