mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Matlab
		
	
		
		
			
		
	
	
			106 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Matlab
		
	
| 
											9 years ago
										 | // | ||
|  | //  Copyright (c) 2017 Open Whisper Systems. All rights reserved. | ||
|  | // | ||
|  | 
 | ||
|  | #import "OWSDevice.h" | ||
|  | #import "OWSIncomingMessageFinder.h" | ||
|  | #import "TSContactThread.h" | ||
|  | #import "TSIncomingMessage.h" | ||
|  | #import <XCTest/XCTest.h> | ||
|  | 
 | ||
|  | NS_ASSUME_NONNULL_BEGIN | ||
|  | 
 | ||
|  | @interface OWSIncomingMessageFinder (Testing) | ||
|  | 
 | ||
|  | - (void)registerExtension; | ||
|  | 
 | ||
|  | @end | ||
|  | 
 | ||
|  | @interface OWSIncomingMessageFinderTest : XCTestCase | ||
|  | 
 | ||
|  | @property (nonatomic) NSString *sourceId; | ||
|  | @property (nonatomic) TSThread *thread; | ||
|  | @property (nonatomic) OWSIncomingMessageFinder *finder; | ||
|  | 
 | ||
|  | @end | ||
|  | 
 | ||
|  | @implementation OWSIncomingMessageFinderTest | ||
|  | 
 | ||
|  | - (void)setUp | ||
|  | { | ||
|  |     [super setUp]; | ||
|  |     self.sourceId = @"some-source-id"; | ||
|  |     self.thread = [TSContactThread getOrCreateThreadWithContactId:self.sourceId]; | ||
|  |     self.finder = [OWSIncomingMessageFinder new]; | ||
|  |     [self.finder registerExtension]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)tearDown | ||
|  | { | ||
|  |     // Put teardown code here. This method is called after the invocation of each test method in the class. | ||
|  |     [super tearDown]; | ||
|  | } | ||
|  | 
 | ||
|  | - (void)testExistingMessages | ||
|  | { | ||
|  | 
 | ||
|  |     uint64_t timestamp = 1234; | ||
|  |     BOOL result = [self.finder existsMessageWithTimestamp:timestamp | ||
|  |                                                  sourceId:self.sourceId | ||
|  |                                            sourceDeviceId:OWSDevicePrimaryDeviceId]; | ||
|  | 
 | ||
|  |     // Sanity check. | ||
|  |     XCTAssertFalse(result); | ||
|  | 
 | ||
|  |     // Different timestamp | ||
|  |     [[[TSIncomingMessage alloc] initWithTimestamp:timestamp + 1 | ||
|  |                                          inThread:self.thread | ||
|  |                                          authorId:self.sourceId | ||
|  |                                    sourceDeviceId:OWSDevicePrimaryDeviceId | ||
|  |                                       messageBody:@"foo"] save]; | ||
|  |     result = [self.finder existsMessageWithTimestamp:timestamp | ||
|  |                                             sourceId:self.sourceId | ||
|  |                                       sourceDeviceId:OWSDevicePrimaryDeviceId]; | ||
|  |     XCTAssertFalse(result); | ||
|  | 
 | ||
|  |     // Different authorId | ||
|  |     [[[TSIncomingMessage alloc] initWithTimestamp:timestamp | ||
|  |                                          inThread:self.thread | ||
|  |                                          authorId:@"some-other-author-id" | ||
|  |                                    sourceDeviceId:OWSDevicePrimaryDeviceId | ||
|  |                                       messageBody:@"foo"] save]; | ||
|  | 
 | ||
|  |     result = [self.finder existsMessageWithTimestamp:timestamp | ||
|  |                                             sourceId:self.sourceId | ||
|  |                                       sourceDeviceId:OWSDevicePrimaryDeviceId]; | ||
|  |     XCTAssertFalse(result); | ||
|  | 
 | ||
|  |     // Different device | ||
|  |     [[[TSIncomingMessage alloc] initWithTimestamp:timestamp | ||
|  |                                          inThread:self.thread | ||
|  |                                          authorId:self.sourceId | ||
|  |                                    sourceDeviceId:OWSDevicePrimaryDeviceId + 1 | ||
|  |                                       messageBody:@"foo"] save]; | ||
|  | 
 | ||
|  |     result = [self.finder existsMessageWithTimestamp:timestamp | ||
|  |                                             sourceId:self.sourceId | ||
|  |                                       sourceDeviceId:OWSDevicePrimaryDeviceId]; | ||
|  |     XCTAssertFalse(result); | ||
|  | 
 | ||
|  |     // The real deal... | ||
|  |     [[[TSIncomingMessage alloc] initWithTimestamp:timestamp | ||
|  |                                          inThread:self.thread | ||
|  |                                          authorId:self.sourceId | ||
|  |                                    sourceDeviceId:OWSDevicePrimaryDeviceId | ||
|  |                                       messageBody:@"foo"] save]; | ||
|  | 
 | ||
|  |     result = [self.finder existsMessageWithTimestamp:timestamp | ||
|  |                                             sourceId:self.sourceId | ||
|  |                                       sourceDeviceId:OWSDevicePrimaryDeviceId]; | ||
|  |     XCTAssertTrue(result); | ||
|  | } | ||
|  | 
 | ||
|  | @end | ||
|  | 
 | ||
|  | NS_ASSUME_NONNULL_END |