@Test public void clearOnDetach_onAttach_afterLoadCleared_doesNotBeingRequest() { attachStateTarget.clearOnDetach(); attachStateTarget.setRequest(request); when(request.isCleared()).thenReturn(true); attachStateTarget.onLoadCleared(/*placeholder=*/ null); shadowView.callOnAttachedToWindow(); verify(request, never()).begin(); }
@Test public void clearOnDetach_afterLoadClearedAndRestarted_onAttach_beingsRequest() { attachStateTarget.clearOnDetach(); attachStateTarget.setRequest(request); when(request.isCleared()).thenReturn(true); attachStateTarget.onLoadCleared(/*placeholder=*/ null); attachStateTarget.onLoadStarted(/*placeholder=*/ null); shadowView.callOnAttachedToWindow(); verify(request).begin(); }
@Test public void clearOnDetach_onDetach_afterOnLoadCleared_removesListener() { attachStateTarget.clearOnDetach(); attachStateTarget.onLoadCleared(/*placeholder=*/ null); attachStateTarget.setRequest(request); shadowView.callOnDetachedFromWindow(); verify(request, never()).clear(); }
@SuppressWarnings("ResultOfMethodCallIgnored") @Test public void onLoadCleared_withoutClearOnDetach_doesNotRemoveListeners() { OnAttachStateChangeListener expected = new OnAttachStateChangeListener() { @Override public void onViewAttachedToWindow(View v) { } @Override public void onViewDetachedFromWindow(View v) { } }; shadowView.addOnAttachStateChangeListener(expected); attachStateTarget.onLoadCleared(/*placeholder=*/ null); assertThat(shadowView.attachStateListeners).containsExactly(expected); }
@Test public void clearOnDetach_onDetach_afterMultipleClearOnDetaches_removesListener() { attachStateTarget .clearOnDetach() .clearOnDetach() .clearOnDetach(); attachStateTarget.onLoadCleared(/*placeholder=*/ null); attachStateTarget.setRequest(request); shadowView.callOnDetachedFromWindow(); verify(request, never()).clear(); }