@Config(sdk = Build.VERSION_CODES.LOLLIPOP)
@Test public void testAttachTransitionsToFragment() {

	// Arrange:
	final Fragment mockFragment = mock(TestFragment.class);
	final Transition enterTransition = createTestTransition();
	final Transition exitTransition = createTestTransition();
	final Transition reenterTransition = createTestTransition();
	final Transition returnTransition = createTestTransition();
	final Transition sharedElementEnterTransition = createTestTransition();
	final Transition sharedElementEnterReturnTransition = createTestTransition();
	final FragmentRequest request = new FragmentRequest(mock(FragmentController.class), mockFragment)
			.enterTransition(enterTransition)
			.exitTransition(exitTransition)
			.reenterTransition(reenterTransition)
			.returnTransition(returnTransition)
			.sharedElementEnterTransition(sharedElementEnterTransition)
			.sharedElementReturnTransition(sharedElementEnterReturnTransition)
			.allowEnterTransitionOverlap(true)
			.allowReturnTransitionOverlap(false);
	// Act:
	FragmentController.attachTransitionsToFragment(request, mockFragment);
	// Assert:
	verify(mockFragment).setEnterTransition(enterTransition);
	verify(mockFragment).setExitTransition(exitTransition);
	verify(mockFragment).setReenterTransition(reenterTransition);
	verify(mockFragment).setReturnTransition(returnTransition);
	verify(mockFragment).setSharedElementEnterTransition(sharedElementEnterTransition);
	verify(mockFragment).setSharedElementReturnTransition(sharedElementEnterReturnTransition);
	verify(mockFragment).setAllowEnterTransitionOverlap(true);
	verify(mockFragment).setAllowReturnTransitionOverlap(false);
	verifyNoMoreInteractions(mockFragment);
}