diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/ApplicationTestCase.java b/data/src/test/java/com/fernandocejas/android10/sample/data/ApplicationTestCase.java index fc17086..680fca1 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/ApplicationTestCase.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/ApplicationTestCase.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -15,8 +15,13 @@ */ package com.fernandocejas.android10.sample.data; +import android.content.Context; +import org.junit.Rule; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; +import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricGradleTestRunner; +import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; /** @@ -25,4 +30,14 @@ import org.robolectric.annotation.Config; */ @RunWith(RobolectricGradleTestRunner.class) @Config(constants = BuildConfig.class, application = ApplicationStub.class, sdk = 21) -public abstract class ApplicationTestCase {} +public abstract class ApplicationTestCase { + + @Rule public TestRule injectMocksRule = (base, description) -> { + MockitoAnnotations.initMocks(ApplicationTestCase.this); + return base; + }; + + public static Context context() { + return RuntimeEnvironment.application; + } +} diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/exception/RepositoryErrorBundleTest.java b/data/src/test/java/com/fernandocejas/android10/sample/data/exception/RepositoryErrorBundleTest.java index 277f7ad..517613b 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/exception/RepositoryErrorBundleTest.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/exception/RepositoryErrorBundleTest.java @@ -18,25 +18,26 @@ package com.fernandocejas.android10.sample.data.exception; import com.fernandocejas.android10.sample.data.ApplicationTestCase; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.verify; +@RunWith(MockitoJUnitRunner.class) public class RepositoryErrorBundleTest extends ApplicationTestCase { private RepositoryErrorBundle repositoryErrorBundle; - @Mock - private Exception mockException; + @Mock private Exception mockException; @Before public void setUp() { - MockitoAnnotations.initMocks(this); repositoryErrorBundle = new RepositoryErrorBundle(mockException); } @Test + @SuppressWarnings("ThrowableResultOfMethodCallIgnored") public void testGetErrorMessageInteraction() { repositoryErrorBundle.getErrorMessage(); diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/UserDataRepositoryTest.java b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/UserDataRepositoryTest.java index 7075205..6433531 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/UserDataRepositoryTest.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/UserDataRepositoryTest.java @@ -15,7 +15,6 @@ */ package com.fernandocejas.android10.sample.data.repository; -import com.fernandocejas.android10.sample.data.ApplicationTestCase; import com.fernandocejas.android10.sample.data.entity.UserEntity; import com.fernandocejas.android10.sample.data.entity.mapper.UserEntityDataMapper; import com.fernandocejas.android10.sample.data.repository.datasource.UserDataStore; @@ -27,15 +26,17 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import rx.Observable; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.verify; -public class UserDataRepositoryTest extends ApplicationTestCase { +@RunWith(MockitoJUnitRunner.class) +public class UserDataRepositoryTest { private static final int FAKE_USER_ID = 123; @@ -52,7 +53,6 @@ public class UserDataRepositoryTest extends ApplicationTestCase { @Before public void setUp() { - MockitoAnnotations.initMocks(this); userDataRepository = new UserDataRepository(mockUserDataStoreFactory, mockUserEntityDataMapper); diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/CloudUserDataStoreTest.java b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/CloudUserDataStoreTest.java index b54e58e..1bc23ec 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/CloudUserDataStoreTest.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/CloudUserDataStoreTest.java @@ -15,20 +15,21 @@ */ package com.fernandocejas.android10.sample.data.repository.datasource; -import com.fernandocejas.android10.sample.data.ApplicationTestCase; import com.fernandocejas.android10.sample.data.cache.UserCache; import com.fernandocejas.android10.sample.data.entity.UserEntity; import com.fernandocejas.android10.sample.data.net.RestApi; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import rx.Observable; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.verify; -public class CloudUserDataStoreTest extends ApplicationTestCase { +@RunWith(MockitoJUnitRunner.class) +public class CloudUserDataStoreTest { private static final int FAKE_USER_ID = 765; @@ -39,7 +40,6 @@ public class CloudUserDataStoreTest extends ApplicationTestCase { @Before public void setUp() { - MockitoAnnotations.initMocks(this); cloudUserDataStore = new CloudUserDataStore(mockRestApi, mockUserCache); } diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/DiskUserDataStoreTest.java b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/DiskUserDataStoreTest.java index 6c7bca5..6a64914 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/DiskUserDataStoreTest.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/DiskUserDataStoreTest.java @@ -15,18 +15,19 @@ */ package com.fernandocejas.android10.sample.data.repository.datasource; -import com.fernandocejas.android10.sample.data.ApplicationTestCase; import com.fernandocejas.android10.sample.data.cache.UserCache; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.verify; -public class DiskUserDataStoreTest extends ApplicationTestCase { +@RunWith(MockitoJUnitRunner.class) +public class DiskUserDataStoreTest { private static final int FAKE_USER_ID = 11; @@ -38,7 +39,6 @@ public class DiskUserDataStoreTest extends ApplicationTestCase { @Before public void setUp() { - MockitoAnnotations.initMocks(this); diskUserDataStore = new DiskUserDataStore(mockUserCache); } diff --git a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/UserDataStoreFactoryTest.java b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/UserDataStoreFactoryTest.java index b8c644a..6c560a0 100644 --- a/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/UserDataStoreFactoryTest.java +++ b/data/src/test/java/com/fernandocejas/android10/sample/data/repository/datasource/UserDataStoreFactoryTest.java @@ -20,7 +20,6 @@ import com.fernandocejas.android10.sample.data.cache.UserCache; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import static org.hamcrest.CoreMatchers.instanceOf; @@ -36,14 +35,11 @@ public class UserDataStoreFactoryTest extends ApplicationTestCase { private UserDataStoreFactory userDataStoreFactory; - @Mock - private UserCache mockUserCache; + @Mock private UserCache mockUserCache; @Before public void setUp() { - MockitoAnnotations.initMocks(this); - userDataStoreFactory = - new UserDataStoreFactory(RuntimeEnvironment.application, mockUserCache); + userDataStoreFactory = new UserDataStoreFactory(RuntimeEnvironment.application, mockUserCache); } @Test diff --git a/domain/src/test/java/com/fernandocejas/android10/sample/domain/exception/DefaultErrorBundleTest.java b/domain/src/test/java/com/fernandocejas/android10/sample/domain/exception/DefaultErrorBundleTest.java index 1ba0043..0e33d6e 100644 --- a/domain/src/test/java/com/fernandocejas/android10/sample/domain/exception/DefaultErrorBundleTest.java +++ b/domain/src/test/java/com/fernandocejas/android10/sample/domain/exception/DefaultErrorBundleTest.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,20 +17,20 @@ package com.fernandocejas.android10.sample.domain.exception; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.verify; +@RunWith(MockitoJUnitRunner.class) public class DefaultErrorBundleTest { private DefaultErrorBundle defaultErrorBundle; - @Mock - private Exception mockException; + @Mock private Exception mockException; @Before public void setUp() { - MockitoAnnotations.initMocks(this); defaultErrorBundle = new DefaultErrorBundle(mockException); } @@ -40,4 +40,4 @@ public class DefaultErrorBundleTest { verify(mockException).getMessage(); } -} \ No newline at end of file +} diff --git a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserDetailsTest.java b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserDetailsTest.java index 8e730cb..f0c119d 100644 --- a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserDetailsTest.java +++ b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserDetailsTest.java @@ -20,13 +20,15 @@ import com.fernandocejas.android10.sample.domain.executor.ThreadExecutor; import com.fernandocejas.android10.sample.domain.repository.UserRepository; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; +@RunWith(MockitoJUnitRunner.class) public class GetUserDetailsTest { private static final int FAKE_USER_ID = 123; @@ -39,7 +41,6 @@ public class GetUserDetailsTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); getUserDetails = new GetUserDetails(FAKE_USER_ID, mockUserRepository, mockThreadExecutor, mockPostExecutionThread); } diff --git a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserListTest.java b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserListTest.java index 0e1565f..0ea9165 100644 --- a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserListTest.java +++ b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/GetUserListTest.java @@ -20,13 +20,15 @@ import com.fernandocejas.android10.sample.domain.executor.ThreadExecutor; import com.fernandocejas.android10.sample.domain.repository.UserRepository; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyZeroInteractions; +@RunWith(MockitoJUnitRunner.class) public class GetUserListTest { private GetUserList getUserList; @@ -37,7 +39,6 @@ public class GetUserListTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); getUserList = new GetUserList(mockUserRepository, mockThreadExecutor, mockPostExecutionThread); } diff --git a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/UseCaseTest.java b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/UseCaseTest.java index e8d2044..7f290e3 100644 --- a/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/UseCaseTest.java +++ b/domain/src/test/java/com/fernandocejas/android10/sample/domain/interactor/UseCaseTest.java @@ -19,8 +19,9 @@ import com.fernandocejas.android10.sample.domain.executor.PostExecutionThread; import com.fernandocejas.android10.sample.domain.executor.ThreadExecutor; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import rx.Observable; import rx.Subscriber; import rx.observers.TestSubscriber; @@ -30,6 +31,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.mockito.BDDMockito.given; +@RunWith(MockitoJUnitRunner.class) public class UseCaseTest { private UseCaseTestClass useCase; @@ -39,7 +41,6 @@ public class UseCaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); this.useCase = new UseCaseTestClass(mockThreadExecutor, mockPostExecutionThread); } @@ -67,7 +68,7 @@ public class UseCaseTest { private static class UseCaseTestClass extends UseCase { - protected UseCaseTestClass( + UseCaseTestClass( ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread) { super(threadExecutor, postExecutionThread); @@ -81,4 +82,4 @@ public class UseCaseTest { super.execute(UseCaseSubscriber); } } -} \ No newline at end of file +} diff --git a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/mapper/UserModelDataMapperTest.java b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/mapper/UserModelDataMapperTest.java index 50a1e33..bb48c6f 100644 --- a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/mapper/UserModelDataMapperTest.java +++ b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/mapper/UserModelDataMapperTest.java @@ -31,7 +31,7 @@ import static org.mockito.Mockito.mock; public class UserModelDataMapperTest extends TestCase { private static final int FAKE_USER_ID = 123; - private static final String FAKE_FULLNAME = "Tony Stark"; + private static final String FAKE_FULL_NAME = "Tony Stark"; private UserModelDataMapper userModelDataMapper; @@ -46,7 +46,7 @@ public class UserModelDataMapperTest extends TestCase { assertThat(userModel, is(instanceOf(UserModel.class))); assertThat(userModel.getUserId(), is(FAKE_USER_ID)); - assertThat(userModel.getFullName(), is(FAKE_FULLNAME)); + assertThat(userModel.getFullName(), is(FAKE_FULL_NAME)); } public void testTransformUserCollection() { @@ -66,7 +66,7 @@ public class UserModelDataMapperTest extends TestCase { private User createFakeUser() { User user = new User(FAKE_USER_ID); - user.setFullName(FAKE_FULLNAME); + user.setFullName(FAKE_FULL_NAME); return user; } diff --git a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserDetailsPresenterTest.java b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserDetailsPresenterTest.java index c400969..07d8bc3 100644 --- a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserDetailsPresenterTest.java +++ b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserDetailsPresenterTest.java @@ -16,42 +16,38 @@ package com.fernandocejas.android10.sample.test.presenter; import android.content.Context; -import android.test.AndroidTestCase; import com.fernandocejas.android10.sample.domain.interactor.GetUserDetails; import com.fernandocejas.android10.sample.presentation.mapper.UserModelDataMapper; import com.fernandocejas.android10.sample.presentation.presenter.UserDetailsPresenter; import com.fernandocejas.android10.sample.presentation.view.UserDetailsView; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import rx.Subscriber; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.any; import static org.mockito.Mockito.verify; -public class UserDetailsPresenterTest extends AndroidTestCase { - - private static final int FAKE_USER_ID = 123; +@RunWith(MockitoJUnitRunner.class) +public class UserDetailsPresenterTest { private UserDetailsPresenter userDetailsPresenter; - @Mock - private Context mockContext; - @Mock - private UserDetailsView mockUserDetailsView; - @Mock - private GetUserDetails mockGetUserDetails; - @Mock - private UserModelDataMapper mockUserModelDataMapper; + @Mock private Context mockContext; + @Mock private UserDetailsView mockUserDetailsView; + @Mock private GetUserDetails mockGetUserDetails; + @Mock private UserModelDataMapper mockUserModelDataMapper; - @Override protected void setUp() throws Exception { - super.setUp(); - MockitoAnnotations.initMocks(this); - userDetailsPresenter = new UserDetailsPresenter(mockGetUserDetails, - mockUserModelDataMapper); + @Before + public void setUp() { + userDetailsPresenter = new UserDetailsPresenter(mockGetUserDetails, mockUserModelDataMapper); userDetailsPresenter.setView(mockUserDetailsView); } + @Test public void testUserDetailsPresenterInitialize() { given(mockUserDetailsView.context()).willReturn(mockContext); diff --git a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserListPresenterTest.java b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserListPresenterTest.java index f8a98c8..e02d3fc 100644 --- a/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserListPresenterTest.java +++ b/presentation/src/androidTest/java/com/fernandocejas/android10/sample/test/presenter/UserListPresenterTest.java @@ -16,39 +16,38 @@ package com.fernandocejas.android10.sample.test.presenter; import android.content.Context; -import android.test.AndroidTestCase; import com.fernandocejas.android10.sample.domain.interactor.GetUserList; import com.fernandocejas.android10.sample.presentation.mapper.UserModelDataMapper; import com.fernandocejas.android10.sample.presentation.presenter.UserListPresenter; import com.fernandocejas.android10.sample.presentation.view.UserListView; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; +import org.mockito.runners.MockitoJUnitRunner; import rx.Subscriber; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.any; import static org.mockito.Mockito.verify; -public class UserListPresenterTest extends AndroidTestCase { +@RunWith(MockitoJUnitRunner.class) +public class UserListPresenterTest { private UserListPresenter userListPresenter; - @Mock - private Context mockContext; - @Mock - private UserListView mockUserListView; - @Mock - private GetUserList mockGetUserList; - @Mock - private UserModelDataMapper mockUserModelDataMapper; + @Mock private Context mockContext; + @Mock private UserListView mockUserListView; + @Mock private GetUserList mockGetUserList; + @Mock private UserModelDataMapper mockUserModelDataMapper; - @Override protected void setUp() throws Exception { - super.setUp(); - MockitoAnnotations.initMocks(this); + @Before + public void setUp() { userListPresenter = new UserListPresenter(mockGetUserList, mockUserModelDataMapper); userListPresenter.setView(mockUserListView); } + @Test public void testUserListPresenterInitialize() { given(mockUserListView.context()).willReturn(mockContext);