mirror of https://github.com/oxen-io/session-ios
				
				
				
			Make tests play nice with pod install
							parent
							
								
									fc635d45d3
								
							
						
					
					
						commit
						0c925c325c
					
				@ -1,56 +0,0 @@
 | 
			
		||||
@testable import SignalServiceKit
 | 
			
		||||
import XCTest
 | 
			
		||||
import Curve25519Kit
 | 
			
		||||
 | 
			
		||||
class LK001UpdateFriendRequestStatusStorageTest : XCTestCase {
 | 
			
		||||
 | 
			
		||||
    private var storage: OWSPrimaryStorage { OWSPrimaryStorage.shared() }
 | 
			
		||||
 | 
			
		||||
    override func setUp() {
 | 
			
		||||
        super.setUp()
 | 
			
		||||
 | 
			
		||||
        LokiTestUtilities.setUpMockEnvironment()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    func test_shouldMigrateFriendRequestStatusCorrectly() {
 | 
			
		||||
        typealias ThreadFriendRequestStatus = NSInteger
 | 
			
		||||
        let friendRequestMappings: [ThreadFriendRequestStatus:LKFriendRequestStatus] = [
 | 
			
		||||
            0 : .none,
 | 
			
		||||
            1 : .requestSending,
 | 
			
		||||
            2 : .requestSent,
 | 
			
		||||
            3 : .requestReceived,
 | 
			
		||||
            4 : .friends,
 | 
			
		||||
            5 : .requestExpired
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
        var hexEncodedPublicKeyMapping: [String:ThreadFriendRequestStatus] = [:]
 | 
			
		||||
        for (threadFriendRequestStatus, _) in friendRequestMappings {
 | 
			
		||||
            let hexEncodedPublicKey = Curve25519.generateKeyPair().hexEncodedPublicKey
 | 
			
		||||
            hexEncodedPublicKeyMapping[hexEncodedPublicKey] = threadFriendRequestStatus
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        storage.dbReadWriteConnection.readWrite { transaction in
 | 
			
		||||
            for (hexEncodedPublicKey, friendRequestStatus) in hexEncodedPublicKeyMapping {
 | 
			
		||||
                let thread = TSContactThread.getOrCreateThread(withContactId: hexEncodedPublicKey, transaction: transaction)
 | 
			
		||||
                thread.friendRequestStatus = friendRequestStatus
 | 
			
		||||
                thread.save(with: transaction)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Wait for the migration to complete
 | 
			
		||||
        let migration = self.expectation(description: "Migration")
 | 
			
		||||
        LK001UpdateFriendRequestStatusStorage().runUp {
 | 
			
		||||
            migration.fulfill()
 | 
			
		||||
        }
 | 
			
		||||
        wait(for: [ migration ], timeout: 5)
 | 
			
		||||
 | 
			
		||||
        storage.dbReadConnection.read { transaction in
 | 
			
		||||
            for (hexEncodedPublicKey, threadFriendRequestStatus) in hexEncodedPublicKeyMapping {
 | 
			
		||||
                let expectedFriendRequestStatus = friendRequestMappings[threadFriendRequestStatus]!
 | 
			
		||||
                let friendRequestStatus = self.storage.getFriendRequestStatus(for: hexEncodedPublicKey, transaction: transaction)
 | 
			
		||||
                XCTAssertEqual(friendRequestStatus, expectedFriendRequestStatus, "Expected friend request status \(friendRequestStatus.rawValue) to match \(expectedFriendRequestStatus.rawValue).")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue