|  |  |  | // | 
					
						
							|  |  |  | //  Copyright (c) 2018 Open Whisper Systems. All rights reserved. | 
					
						
							|  |  |  | // | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import XCTest | 
					
						
							|  |  |  | @testable import SignalServiceKit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ContactDiscoveryOperationTest: SignalBaseTest { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     override func setUp() { | 
					
						
							|  |  |  |         super.setUp() | 
					
						
							|  |  |  |         // Put setup code here. This method is called before the invocation of each test method in the class. | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     override func tearDown() { | 
					
						
							|  |  |  |         // Put teardown code here. This method is called after the invocation of each test method in the class. | 
					
						
							|  |  |  |         super.tearDown() | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func tesBoolArrayFromEmptyData() { | 
					
						
							|  |  |  |         let data = Data() | 
					
						
							|  |  |  |         let bools = CDSBatchOperation.boolArray(data: data) | 
					
						
							|  |  |  |         XCTAssert(bools == []) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func testBoolArrayFromFalseByte() { | 
					
						
							|  |  |  |         let data = Data(repeating: 0x00, count: 4) | 
					
						
							|  |  |  |         let bools = CDSBatchOperation.boolArray(data: data) | 
					
						
							|  |  |  |         XCTAssert(bools == [false, false, false, false]) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func testBoolArrayFromTrueByte() { | 
					
						
							|  |  |  |         let data = Data(repeating: 0x01, count: 4) | 
					
						
							|  |  |  |         let bools = CDSBatchOperation.boolArray(data: data) | 
					
						
							|  |  |  |         XCTAssert(bools == [true, true, true, true]) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func testBoolArrayFromMixedBytes() { | 
					
						
							|  |  |  |         let data = Data(bytes: [0x01, 0x00, 0x01, 0x01]) | 
					
						
							|  |  |  |         let bools = CDSBatchOperation.boolArray(data: data) | 
					
						
							|  |  |  |         XCTAssert(bools == [true, false, true, true]) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func testEncodeNumber() { | 
					
						
							|  |  |  |         let recipientIds = [ "+1011" ] | 
					
						
							|  |  |  |         let actual = try! CDSBatchOperation.encodePhoneNumbers(recipientIds: recipientIds) | 
					
						
							|  |  |  |         let expected: Data = Data(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf3]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         XCTAssertEqual(expected, actual) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     func testEncodeMultipleNumber() { | 
					
						
							|  |  |  |         let recipientIds = [ "+1011", "+15551231234"] | 
					
						
							|  |  |  |         let actual = try! CDSBatchOperation.encodePhoneNumbers(recipientIds: recipientIds) | 
					
						
							|  |  |  |         let expected: Data = Data(bytes: [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf3, | 
					
						
							|  |  |  |                                           0x00, 0x00, 0x00, 0x03, 0x9e, 0xec, 0xf5, 0x02]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         XCTAssertEqual(expected, actual) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |