Skip to content

Commit

Permalink
Add tests for model at index path
Browse files Browse the repository at this point in the history
  • Loading branch information
sergdort committed Jul 15, 2017
1 parent 64773ed commit d634687
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions Tests/RxCocoaTests/UIPickerView+RxTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,68 @@ final class UIPickerViewTests: RxTest {

XCTAssertEqual(selectedItem, 1)
}

func test_modelAtIdexPath_ThrowsError_itemTitles() {
let pickerView = UIPickerView(frame: CGRect(x: 0, y: 0, width: 100, height: 50))

_ = Observable<[Int]>.never().bind(to: pickerView.rx.itemTitles) { _ in
return ""
}

do {
let _: Int = try pickerView.rx.model(at: IndexPath(item: 0, section: 0))
XCTFail()
} catch let error as RxCocoaError {
XCTAssertTrue(error.isItemsNotYetBound)
} catch {
XCTFail()
}
}

func test_modelAtIdexPath_ThrowsError_itemAttributedTitles() {
let pickerView = UIPickerView(frame: CGRect(x: 0, y: 0, width: 100, height: 50))

_ = Observable<[Int]>.never().bind(to: pickerView.rx.itemAttributedTitles) { _ in
return NSAttributedString()
}

do {
let _: Int = try pickerView.rx.model(at: IndexPath(item: 0, section: 0))
XCTFail()
} catch let error as RxCocoaError {
XCTAssertTrue(error.isItemsNotYetBound)
} catch {
XCTFail()
}
}

func test_modelAtIdexPath_ThrowsError_items() {
let pickerView = UIPickerView(frame: CGRect(x: 0, y: 0, width: 100, height: 50))

_ = Observable<[Int]>.never().bind(to: pickerView.rx.items) { _ in
return UIView()
}

do {
let _: Int = try pickerView.rx.model(at: IndexPath(item: 0, section: 0))
XCTFail()
} catch let error as RxCocoaError {
XCTAssertTrue(error.isItemsNotYetBound)
} catch {
XCTFail()
}
}
}

private extension RxCocoaError {
var isItemsNotYetBound: Bool {
switch self {
case .itemsNotYetBound(object: _):
return true
default:
return false
}
}
}

final class StubPickerViewAdapter: TestPickerViewAdapter {
Expand Down

0 comments on commit d634687

Please sign in to comment.