Helpers.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
  3. // SPDX-License-Identifier: GPL-3.0-or-later
  4. //
  5. import XCTest
  6. import Foundation
  7. @testable import NextcloudTalk
  8. extension XCTestCase {
  9. // TODO: This should probably be part of APIController
  10. func getRoomDict(from rawRoomDict: [Any]) -> [NCRoom] {
  11. var rooms: [NCRoom] = []
  12. for roomDict in rawRoomDict {
  13. if let roomDict = roomDict as? [AnyHashable: Any] {
  14. rooms.append(NCRoom(dictionary: roomDict))
  15. }
  16. }
  17. return rooms
  18. }
  19. func checkRoomExists(roomName: String, withAccount account: TalkAccount, completion: ((NCRoom?) -> Void)? = nil) {
  20. let exp = expectation(description: "\(#function)\(#line)")
  21. NCAPIController.sharedInstance().getRooms(forAccount: account, updateStatus: false, modifiedSince: 0) { roomsDict, error in
  22. XCTAssertNil(error)
  23. let rooms = self.getRoomDict(from: roomsDict!)
  24. let room = rooms.first(where: { $0.displayName == roomName })
  25. XCTAssertNotNil(room)
  26. completion?(room)
  27. exp.fulfill()
  28. }
  29. waitForExpectations(timeout: TestConstants.timeoutLong, handler: nil)
  30. }
  31. }