DataWrapper extends Data<T> { @Override public int available() { return mData.available(); } DataWrapper(@NonNull Data<?> data); @NonNull Data<?> getData(); @Override void invalidate(); @Override void refresh(); @Override void reload(); @Override int size(); @Override boolean isLoading(); @Override int available(); @Override void registerDataObserver(@NonNull DataObserver dataObserver); @Override void unregisterDataObserver(@NonNull DataObserver dataObserver); @Override void registerAvailableObserver(@NonNull AvailableObserver availableObserver); @Override void unregisterAvailableObserver(@NonNull AvailableObserver availableObserver); @Override void registerLoadingObserver(@NonNull LoadingObserver loadingObserver); @Override void unregisterLoadingObserver(@NonNull LoadingObserver loadingObserver); @Override void registerErrorObserver(@NonNull ErrorObserver errorObserver); @Override void unregisterErrorObserver(@NonNull ErrorObserver errorObserver);  }
@Test public void availableStatePropagated() { mData.setAvailable(25); verify(mWrapperAvailableObserver).onAvailableChange(); verifyNoMoreInteractions(mWrapperAvailableObserver); assertEquals(25, mDataWrapper.available()); }