@Test public void testGetNextUnusedViewHolder() throws Exception { //Given List<Shuffle.ViewHolder> viewHolderList = Arrays.asList( mockShuffleViewHolder(1), mockShuffleViewHolder(-1), mockShuffleViewHolder(2) ); //When Shuffle.ViewHolder returnedHolder = Shuffle.getNextUnusedViewHolder(viewHolderList, 0); //Then assertThat(returnedHolder.position).isEqualTo(-1); }
@Test public void testSetFirstCardDraggable() throws Exception { //Given CardDraggableView draggableView1 = mockDraggableView(); CardDraggableView draggableView2 = mockDraggableView(); CardDraggableView draggableView3 = mockDraggableView(); shuffle.draggableViews.addAll(Arrays.asList(draggableView1, draggableView2, draggableView3)); //When shuffle.setFirstCardDraggable(); //Then verify(draggableView1).setDraggable(eq(true)); verify(draggableView1).reset(); verify(draggableView1).setDragListener(any(DraggableView.DraggableViewListener.class)); verify(viewAnimator).updateViewsPositions(eq(0.0f), eq(0.0f)); }
@Test public void testMoveFirstCardToStack() throws Exception { //Give final List<View> viewsList = new ArrayList<>(); doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { viewsList.add((View) invocation.getArguments()[0]); return null; } }).when(shuffle).addView(any(View.class)); shuffle.adapterPosition = 4; given(shuffleSettings.getNumberOfDisplayedCards()).willReturn(3); CardDraggableView draggableView1 = mockDraggableView(); CardDraggableView draggableView2 = mockDraggableView(); CardDraggableView draggableView3 = mockDraggableView(); shuffle.draggableViews.addAll(Arrays.asList(draggableView1, draggableView2, draggableView3)); //When shuffle.moveFirstCardToStack(); //Then assertThat(shuffle.draggableViews.get(0)).isEqualTo(draggableView2); assertThat(shuffle.draggableViews.get(1)).isEqualTo(draggableView3); assertThat(shuffle.draggableViews.get(2)).isEqualTo(draggableView1); verify(shuffle).removeAllViews(); assertThat(viewsList.get(0)).isEqualTo(draggableView1); assertThat(viewsList.get(1)).isEqualTo(draggableView3); assertThat(viewsList.get(2)).isEqualTo(draggableView2); assertThat(shuffle.adapterPosition).isEqualTo(5); }
@Test public void testUpdateAdapter_firstTime() throws Exception { //Given given(shuffleSettings.getNumberOfDisplayedCards()).willReturn(3); shuffle.adapterPosition = 0; CardDraggableView draggableView1 = mockDraggableView(); CardDraggableView draggableView2 = mockDraggableView(); CardDraggableView draggableView3 = mockDraggableView(); shuffle.draggableViews.addAll(Arrays.asList(draggableView1, draggableView2, draggableView3)); Shuffle.Adapter shuffleAdapter = mock(Shuffle.Adapter.class); Shuffle.ViewHolder mockHolder = mock(Shuffle.ViewHolder.class); { given(shuffleAdapter.getItemCount()).willReturn(10); given(shuffleAdapter.getItemViewType(anyInt())).willReturn(1); mockHolder.itemView = mock(View.class); given(shuffleAdapter.onCreateViewHolder(any(ViewGroup.class), anyInt())).willReturn(mockHolder); } //When shuffle.setShuffleAdapter(shuffleAdapter); //Then verify(shuffleAdapter).onCreateViewHolder(eq(draggableView1), anyInt()); verify(shuffleAdapter).onCreateViewHolder(eq(draggableView2), anyInt()); verify(shuffleAdapter).onCreateViewHolder(eq(draggableView3), anyInt()); verify(draggableView1.getContent()).removeAllViews(); verify(draggableView1.getContent()).addView(eq(mockHolder.itemView)); assertThat(mockHolder.position).isEqualTo(2); verify(shuffleAdapter).onBindViewHolder(eq(mockHolder), eq(0)); verify(shuffleAdapter).onBindViewHolder(eq(mockHolder), eq(1)); }
@Test public void testGetNextUnusedViewHolder_isNull() throws Exception { //Given List<Shuffle.ViewHolder> viewHolderList = Arrays.asList( mockShuffleViewHolder(1), mockShuffleViewHolder(2), mockShuffleViewHolder(3) ); //When Shuffle.ViewHolder returnedHolder = Shuffle.getNextUnusedViewHolder(viewHolderList, 0); //Then assertThat(returnedHolder).isNull(); }