// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "OWSPrimaryStorage+PreKeyStore.h" #import "SSKBaseTestObjC.h" @interface TSStoragePreKeyStoreTests : SSKBaseTestObjC @end @implementation TSStoragePreKeyStoreTests - (void)setUp { [super setUp]; // Put setup code here. This method is called before the invocation of each test method in the class. } - (void)tearDown { // Put teardown code here. This method is called after the invocation of each test method in the class. [super tearDown]; } - (void)testGeneratingAndStoringPreKeys { NSArray *generatedKeys = [[OWSPrimaryStorage sharedManager] generatePreKeyRecords]; XCTAssert([generatedKeys count] == 100, @"Not hundred keys generated"); [[OWSPrimaryStorage sharedManager] storePreKeyRecords:generatedKeys]; PreKeyRecord *lastPreKeyRecord = [generatedKeys lastObject]; PreKeyRecord *firstPreKeyRecord = [generatedKeys firstObject]; XCTAssert([[[OWSPrimaryStorage sharedManager] try_loadPreKey:lastPreKeyRecord.Id].keyPair.publicKey isEqualToData:lastPreKeyRecord.keyPair.publicKey]); XCTAssert([[[OWSPrimaryStorage sharedManager] try_loadPreKey:firstPreKeyRecord.Id].keyPair.publicKey isEqualToData:firstPreKeyRecord.keyPair.publicKey]); } - (void)testRemovingPreKeys { NSArray *generatedKeys = [[OWSPrimaryStorage sharedManager] generatePreKeyRecords]; XCTAssert([generatedKeys count] == 100, @"Not hundred keys generated"); [[OWSPrimaryStorage sharedManager] storePreKeyRecords:generatedKeys]; PreKeyRecord *lastPreKeyRecord = [generatedKeys lastObject]; PreKeyRecord *firstPreKeyRecord = [generatedKeys firstObject]; [[OWSPrimaryStorage sharedManager] removePreKey:lastPreKeyRecord.Id]; XCTAssertThrows([[OWSPrimaryStorage sharedManager] try_loadPreKey:lastPreKeyRecord.Id]); XCTAssertNoThrow([[OWSPrimaryStorage sharedManager] try_loadPreKey:firstPreKeyRecord.Id]); } @end