@@ -202,7 +202,68 @@ final class UIPickerViewTests: RxTest {
202
202
203
203
XCTAssertEqual ( selectedItem, 1 )
204
204
}
205
+
206
+ func test_modelAtIdexPath_ThrowsError_itemTitles( ) {
207
+ let pickerView = UIPickerView ( frame: CGRect ( x: 0 , y: 0 , width: 100 , height: 50 ) )
208
+
209
+ _ = Observable < [ Int ] > . never ( ) . bind ( to: pickerView. rx. itemTitles) { _ in
210
+ return " "
211
+ }
212
+
213
+ do {
214
+ let _: Int = try pickerView. rx. model ( at: IndexPath ( item: 0 , section: 0 ) )
215
+ XCTFail ( )
216
+ } catch let error as RxCocoaError {
217
+ XCTAssertTrue ( error. isItemsNotYetBound)
218
+ } catch {
219
+ XCTFail ( )
220
+ }
221
+ }
222
+
223
+ func test_modelAtIdexPath_ThrowsError_itemAttributedTitles( ) {
224
+ let pickerView = UIPickerView ( frame: CGRect ( x: 0 , y: 0 , width: 100 , height: 50 ) )
225
+
226
+ _ = Observable < [ Int ] > . never ( ) . bind ( to: pickerView. rx. itemAttributedTitles) { _ in
227
+ return NSAttributedString ( )
228
+ }
229
+
230
+ do {
231
+ let _: Int = try pickerView. rx. model ( at: IndexPath ( item: 0 , section: 0 ) )
232
+ XCTFail ( )
233
+ } catch let error as RxCocoaError {
234
+ XCTAssertTrue ( error. isItemsNotYetBound)
235
+ } catch {
236
+ XCTFail ( )
237
+ }
238
+ }
239
+
240
+ func test_modelAtIdexPath_ThrowsError_items( ) {
241
+ let pickerView = UIPickerView ( frame: CGRect ( x: 0 , y: 0 , width: 100 , height: 50 ) )
242
+
243
+ _ = Observable < [ Int ] > . never ( ) . bind ( to: pickerView. rx. items) { _ in
244
+ return UIView ( )
245
+ }
246
+
247
+ do {
248
+ let _: Int = try pickerView. rx. model ( at: IndexPath ( item: 0 , section: 0 ) )
249
+ XCTFail ( )
250
+ } catch let error as RxCocoaError {
251
+ XCTAssertTrue ( error. isItemsNotYetBound)
252
+ } catch {
253
+ XCTFail ( )
254
+ }
255
+ }
256
+ }
205
257
258
+ private extension RxCocoaError {
259
+ var isItemsNotYetBound : Bool {
260
+ switch self {
261
+ case . itemsNotYetBound( object: _) :
262
+ return true
263
+ default :
264
+ return false
265
+ }
266
+ }
206
267
}
207
268
208
269
final class StubPickerViewAdapter : TestPickerViewAdapter {
0 commit comments