Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. @RunWith(RobolectricGradleTestRunner.class)
  2. @Config(constants = BuildConfig.class, sdk = 21)
  3. @PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"})
  4. @PrepareForTest({Realm.class, RealmConfiguration.class, RealmQuery.class, RealmResults.class, RealmCore.class})
  5. public class GitHubUserDaoTest {
  6. @Rule
  7. public PowerMockRule rule = new PowerMockRule();
  8.  
  9. private GitHubUserDao gitHubUserDao;
  10.  
  11. @Before
  12. public void setup() throws Exception {
  13. MockitoAnnotations.initMocks(this);
  14.  
  15. // Setup Realm
  16. mockStatic(Realm.class);
  17. mockStatic(RealmConfiguration.class);
  18. mockStatic(RealmCore.class);
  19.  
  20. final Realm mockRealm = mock(Realm.class);
  21. final RealmConfiguration mockRealmConfig = mock(RealmConfiguration.class);
  22. doNothing().when(RealmCore.class);
  23. RealmCore.loadLibrary(any(Context.class));
  24. whenNew(RealmConfiguration.class).withAnyArguments().thenReturn(mockRealmConfig);
  25. when(Realm.getInstance(any(RealmConfiguration.class))).thenReturn(mockRealm);
  26. when(mockRealm.createObject(GitHubUserRealm.class)).thenReturn(new GitHubUserRealm());
  27.  
  28. // GitHubUsers mock data
  29. GitHubUserRealm p1 = new GitHubUserRealm("testLogin1");
  30. GitHubUserRealm p2 = new GitHubUserRealm("testLogin2");
  31. List<GitHubUserRealm> gitHubUserList = Arrays.asList(p1, p2);
  32.  
  33. // RealmQuery mock
  34. RealmQuery<GitHubUserRealm> gitHubUserListQuery = mockRealmQuery();
  35. when(mockRealm.where(GitHubUserRealm.class)).thenReturn(gitHubUserListQuery);
  36.  
  37. // RealmResult mock
  38. mockStatic(RealmResults.class);
  39. RealmResults<GitHubUserRealm> gitHubUserListResult = mockRealmResults();
  40. when(mockRealm.where(GitHubUserRealm.class).findAll()).thenReturn(gitHubUserListResult);
  41. when(gitHubUserListResult.iterator()).thenReturn(gitHubUserList.iterator());
  42. when(gitHubUserListResult.size()).thenReturn(gitHubUserList.size());
  43.  
  44. // DAO mock
  45. gitHubUserDao = new GitHubUserDao(mockRealmConfig);
  46. }
  47.  
  48. @SuppressWarnings("unchecked")
  49. private <T extends RealmObject> RealmQuery<T> mockRealmQuery() {
  50. return mock(RealmQuery.class);
  51. }
  52.  
  53. @SuppressWarnings("unchecked")
  54. private <T extends RealmObject> RealmResults<T> mockRealmResults() {
  55. return mock(RealmResults.class);
  56. }
  57.  
  58. /* getGitHubUsersList list from Realm */
  59. @Test
  60. public void getGitHubUserListTest() {
  61. List<GitHubUser> gitHubUserListResult = gitHubUserDao.getGitHubUserList();
  62.  
  63. Assert.assertEquals("testLogin1", gitHubUserListResult.get(0).getLogin());
  64. Assert.assertEquals("testLogin2", gitHubUserListResult.get(1).getLogin());
  65. }
  66.  
  67. /* clear list of gitHubUserList */
  68. @Test
  69. public void clearGitHubUserListTest() {
  70. List<GitHubUser> gitHubUserListResult = gitHubUserDao.getGitHubUserList();
  71.  
  72. Assert.assertEquals(2, gitHubUserListResult.size());
  73. Assert.assertEquals("testLogin1", gitHubUserListResult.get(0).getLogin());
  74. Assert.assertEquals("testLogin2", gitHubUserListResult.get(1).getLogin());
  75.  
  76. gitHubUserDao.clearDatabase();
  77.  
  78. gitHubUserListResult = gitHubUserDao.getGitHubUserList();
  79.  
  80. Assert.assertEquals(0, gitHubUserListResult.size());
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement