Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @RunWith(RobolectricGradleTestRunner.class)
- @Config(constants = BuildConfig.class, sdk = 21)
- @PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"})
- @PrepareForTest({Realm.class, RealmConfiguration.class, RealmQuery.class, RealmResults.class, RealmCore.class})
- public class GitHubUserDaoTest {
- @Rule
- public PowerMockRule rule = new PowerMockRule();
- private GitHubUserDao gitHubUserDao;
- @Before
- public void setup() throws Exception {
- MockitoAnnotations.initMocks(this);
- // Setup Realm
- mockStatic(Realm.class);
- mockStatic(RealmConfiguration.class);
- mockStatic(RealmCore.class);
- final Realm mockRealm = mock(Realm.class);
- final RealmConfiguration mockRealmConfig = mock(RealmConfiguration.class);
- doNothing().when(RealmCore.class);
- RealmCore.loadLibrary(any(Context.class));
- whenNew(RealmConfiguration.class).withAnyArguments().thenReturn(mockRealmConfig);
- when(Realm.getInstance(any(RealmConfiguration.class))).thenReturn(mockRealm);
- when(mockRealm.createObject(GitHubUserRealm.class)).thenReturn(new GitHubUserRealm());
- // GitHubUsers mock data
- GitHubUserRealm p1 = new GitHubUserRealm("testLogin1");
- GitHubUserRealm p2 = new GitHubUserRealm("testLogin2");
- List<GitHubUserRealm> gitHubUserList = Arrays.asList(p1, p2);
- // RealmQuery mock
- RealmQuery<GitHubUserRealm> gitHubUserListQuery = mockRealmQuery();
- when(mockRealm.where(GitHubUserRealm.class)).thenReturn(gitHubUserListQuery);
- // RealmResult mock
- mockStatic(RealmResults.class);
- RealmResults<GitHubUserRealm> gitHubUserListResult = mockRealmResults();
- when(mockRealm.where(GitHubUserRealm.class).findAll()).thenReturn(gitHubUserListResult);
- when(gitHubUserListResult.iterator()).thenReturn(gitHubUserList.iterator());
- when(gitHubUserListResult.size()).thenReturn(gitHubUserList.size());
- // DAO mock
- gitHubUserDao = new GitHubUserDao(mockRealmConfig);
- }
- @SuppressWarnings("unchecked")
- private <T extends RealmObject> RealmQuery<T> mockRealmQuery() {
- return mock(RealmQuery.class);
- }
- @SuppressWarnings("unchecked")
- private <T extends RealmObject> RealmResults<T> mockRealmResults() {
- return mock(RealmResults.class);
- }
- /* getGitHubUsersList list from Realm */
- @Test
- public void getGitHubUserListTest() {
- List<GitHubUser> gitHubUserListResult = gitHubUserDao.getGitHubUserList();
- Assert.assertEquals("testLogin1", gitHubUserListResult.get(0).getLogin());
- Assert.assertEquals("testLogin2", gitHubUserListResult.get(1).getLogin());
- }
- /* clear list of gitHubUserList */
- @Test
- public void clearGitHubUserListTest() {
- List<GitHubUser> gitHubUserListResult = gitHubUserDao.getGitHubUserList();
- Assert.assertEquals(2, gitHubUserListResult.size());
- Assert.assertEquals("testLogin1", gitHubUserListResult.get(0).getLogin());
- Assert.assertEquals("testLogin2", gitHubUserListResult.get(1).getLogin());
- gitHubUserDao.clearDatabase();
- gitHubUserListResult = gitHubUserDao.getGitHubUserList();
- Assert.assertEquals(0, gitHubUserListResult.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement