|  |  |  | // | 
					
						
							|  |  |  | //  Copyright (c) 2017 Open Whisper Systems. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #import "SignalRecipient.h" | 
					
						
							|  |  |  | #import "TSAccountManager.h" | 
					
						
							|  |  |  | #import "TSStorageManager+keyingMaterial.h" | 
					
						
							|  |  |  | #import <XCTest/XCTest.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @interface TSAccountManager (Testing) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - (void)storeLocalNumber:(NSString *)localNumber; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @interface SignalRecipientTest : XCTestCase | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @property (nonatomic) NSString *localNumber; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @implementation SignalRecipientTest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - (void)setUp | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     [super setUp]; | 
					
						
							|  |  |  |     self.localNumber = @"+13231231234"; | 
					
						
							|  |  |  |     [[TSAccountManager sharedInstance] storeLocalNumber:self.localNumber]; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - (void)testSelfRecipientWithExistingRecord | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     // Sanity Check | 
					
						
							|  |  |  |     XCTAssertNotNil(self.localNumber); | 
					
						
							|  |  |  |     [[[SignalRecipient alloc] initWithTextSecureIdentifier:self.localNumber relay:nil] save]; | 
					
						
							|  |  |  |     XCTAssertNotNil([SignalRecipient recipientWithTextSecureIdentifier:self.localNumber]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SignalRecipient *me = [SignalRecipient selfRecipient]; | 
					
						
							|  |  |  |     XCTAssert(me); | 
					
						
							|  |  |  |     XCTAssertEqualObjects(self.localNumber, me.uniqueId); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - (void)testSelfRecipientWithoutExistingRecord | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     XCTAssertNotNil(self.localNumber); | 
					
						
							|  |  |  |     [[SignalRecipient fetchObjectWithUniqueID:self.localNumber] remove]; | 
					
						
							|  |  |  |     // Sanity Check that there's no existing user. | 
					
						
							|  |  |  |     XCTAssertNil([SignalRecipient recipientWithTextSecureIdentifier:self.localNumber]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SignalRecipient *me = [SignalRecipient selfRecipient]; | 
					
						
							|  |  |  |     XCTAssert(me); | 
					
						
							|  |  |  |     XCTAssertEqualObjects(self.localNumber, me.uniqueId); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @end |