package com.socialize.test.comment.unit;
import com.socialize.entity.Comment;
import com.socialize.test.SocializeUnitTest;
import com.socialize.ui.comment.CommentAdapter;
import org.mockito.Mockito;
import java.util.List;
public class CommentAdapterTest extends SocializeUnitTest {
@SuppressWarnings("unchecked")
public void testIsDisplayLoadingFalse() {
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(0);
CommentAdapter adapter = new CommentAdapter();
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
assertFalse(adapter.isDisplayLoading());
}
@SuppressWarnings("unchecked")
public void testIsDisplayLoadingTrue() {
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(1);
CommentAdapter adapter = new CommentAdapter();
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
assertTrue(adapter.isDisplayLoading());
}
@SuppressWarnings("unchecked")
public void testGetCountWithLoading() {
int count = 10;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(count);
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return true;
}
};
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
adapter.notifyDataSetChanged();
assertEquals(count+1, adapter.getCount());
}
@SuppressWarnings("unchecked")
public void testGetCountWithoutLoading() {
int count = 10;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(count);
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return false;
}
};
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
adapter.notifyDataSetChanged();
assertEquals(count, adapter.getCount());
}
@SuppressWarnings("unchecked")
public void testGetItemWithinSize() {
Comment item = new Comment();
int position = 69;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.get(position)).thenReturn(item);
Mockito.when(comments.size()).thenReturn(position+1);
CommentAdapter adapter = new CommentAdapter();
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
assertSame(item, adapter.getItem(position));
}
@SuppressWarnings("unchecked")
public void testGetItemOutsideSize() {
int position = 69;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(position);
CommentAdapter adapter = new CommentAdapter();
adapter.init(getContext());
adapter.setLast(false);
adapter.setComments(comments);
assertNull(adapter.getItem(position));
}
public void testGetItemId() {
final int position = 0;
final Comment comment = Mockito.mock(Comment.class);
CommentAdapter adapter = new CommentAdapter() {
@Override
public Object getItem(int position) {
return comment;
}
};
adapter.init(getContext());
assertEquals(position, adapter.getItemId(position));
}
@SuppressWarnings("unchecked")
public void testGetItemViewTypeForNormal() {
int position = 69;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(position+1);
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return true;
}
};
adapter.init(getContext());
adapter.setComments(comments);
assertEquals(0, adapter.getItemViewType(position));
}
@SuppressWarnings("unchecked")
public void testGetItemViewTypeForLoading() {
int position = 69;
List<Comment> comments = Mockito.mock(List.class);
Mockito.when(comments.size()).thenReturn(position);
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return true;
}
};
adapter.init(getContext());
adapter.setComments(comments);
assertEquals(1, adapter.getItemViewType(position));
}
public void testGetItemViewTypeCountForLoading() {
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return true;
}
};
adapter.init(getContext());
assertEquals(2, adapter.getViewTypeCount());
}
public void testGetItemViewTypeCountForNonLoading() {
CommentAdapter adapter = new CommentAdapter() {
@Override
public boolean isDisplayLoading() {
return false;
}
};
adapter.init(getContext());
assertEquals(1, adapter.getViewTypeCount());
}
}