@Test public void testCheckChangeItemFail() throws Exception { when(mRepository.createOrUpdate(any(Todo.class))) .thenReturn( Observable.create( (Observable.OnSubscribe<Todo>) subscriber -> { try { throw new Exception("error"); } catch (Exception ex) { subscriber.onError(ex); } })); fetchData(); mViewModel .checkChangeItem(mItemViewModelList.get(0)) .subscribeOn(Schedulers.immediate()) .subscribe( todo -> { fail("Should not success"); }, throwable -> { assertEquals("error", throwable.getMessage()); }); assertFalse(mItemViewModelList.get(0).isCompleted()); }
@Test public void testCheckChangeItemSuccess() throws Exception { when(mRepository.createOrUpdate(any(Todo.class))) .thenAnswer( invocation -> { Object[] args = invocation.getArguments(); return Observable.just((Todo) args[0]); }); fetchData(); mViewModel.checkChangeItem(mItemViewModelList.get(0)).toBlocking().single(); assertTrue(mItemViewModelList.get(0).isCompleted()); }