Skip to content

Commit

Permalink
FavoritesActivity tests are now using only two layers
Browse files Browse the repository at this point in the history
  • Loading branch information
AllanHasegawa committed Aug 1, 2017
1 parent 69e809d commit ac6265a
Show file tree
Hide file tree
Showing 11 changed files with 117 additions and 82 deletions.
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ dependencies {
mockito : '2.+',

espresso : '2.2.2',
dexmaker : '2.2.0',
]

compile "com.android.support:appcompat-v7:$versions.supportLib"
Expand All @@ -52,6 +53,8 @@ dependencies {
testCompile "junit:junit:$versions.junit"
testCompile "org.mockito:mockito-core:$versions.mockito"

androidTestCompile "org.mockito:mockito-core:$versions.mockito"
androidTestCompile "com.linkedin.dexmaker:dexmaker-mockito:$versions.dexmaker"
androidTestCompile("com.android.support.test.espresso:espresso-core:$versions.espresso", {
exclude group: 'com.android.support', module: 'support-annotations'
})
Expand Down
73 changes: 0 additions & 73 deletions app/src/androidTest/java/io/catter2/FavoritesActivityTest.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package io.catter2.favorites_activity;

import android.content.Intent;
import android.support.test.espresso.matcher.ViewMatchers;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.ArrayList;
import java.util.List;

import io.catter2.R;
import io.catter2.espresso_utils.RecyclerViewItemCountAssertion;
import io.catter2.favorites.FavoritesRepository;
import io.catter2.favorites.GetFavoritesUseCase;

import static android.support.test.espresso.Espresso.onView;
import static org.mockito.Mockito.mock;

@RunWith(AndroidJUnit4.class)
public class FavoritesActivityTest {
@Rule
public ActivityTestRule<FavoritesActivity> activityRule =
new ActivityTestRule<>(FavoritesActivity.class, true, false /* Do not launch activity! */);

@Test
public void testThereAreThreeImages() {
final ArrayList<String> expectedUrls = new ArrayList<>();
expectedUrls.add("url0");
expectedUrls.add("url1");
expectedUrls.add("url2");
setUpGetFavoritesResponse(expectedUrls);

activityRule.launchActivity(new Intent());

onView(ViewMatchers.withId(R.id.favorites_rv)).check(new RecyclerViewItemCountAssertion(3));
}

@Test
public void testThereAreZeroImages() {
final ArrayList<String> expectedUrls = new ArrayList<>();
setUpGetFavoritesResponse(expectedUrls);

activityRule.launchActivity(new Intent());

onView(ViewMatchers.withId(R.id.favorites_rv)).check(new RecyclerViewItemCountAssertion(0));
}

private void setUpGetFavoritesResponse(final List<String> urls) {
FavoritesActivityDIModule.testGetFavoritesUseCase =
new GetFavoritesUseCase(mock(FavoritesRepository.class)) {
@Override
public void getFavorites(Callback callback) {
callback.favoriteUrlsUpdated(urls);
}
};
}
}
6 changes: 3 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
</intent-filter>
</activity>
<activity
android:name=".FavoritesActivity"
android:name=".favorites_activity.FavoritesActivity"
android:label="@string/title_activity_favorites"
android:parentActivityName=".LoginActivity"
android:theme="@style/AppTheme.NoActionBar">
Expand All @@ -33,11 +33,11 @@
<activity
android:name=".ListActivity"
android:label="@string/title_activity_list"
android:parentActivityName=".FavoritesActivity"
android:parentActivityName=".favorites_activity.FavoritesActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="io.catter2.FavoritesActivity"/>
android:value="io.catter2.favorites_activity.FavoritesActivity"/>
</activity>
</application>

Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/io/catter2/LoginActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import io.catter2.di.AppDIComponent;
import io.catter2.di.SharedPrefFavoritesRepoDIModule;
import io.catter2.di.UserDIComponent;
import io.catter2.favorites_activity.FavoritesActivity;
import io.catter2.login.LoginUseCase;

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.catter2;
package io.catter2.favorites_activity;

import android.content.Context;
import android.content.Intent;
Expand All @@ -13,7 +13,9 @@

import java.util.List;

import io.catter2.di.UserDIComponent;
import io.catter2.ImagesRvAdapter;
import io.catter2.ListActivity;
import io.catter2.R;
import io.catter2.favorites.GetFavoritesUseCase;

public class FavoritesActivity extends AppCompatActivity {
Expand All @@ -30,6 +32,10 @@ static public void launch(Context context) {

private GetFavoritesUseCase getFavoritesUseCase;

public void injectGetFavoritesUserCase(GetFavoritesUseCase useCase) {
this.getFavoritesUseCase = useCase;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -51,7 +57,7 @@ public void onClick(View view) {
rvAdapter = new ImagesRvAdapter(null);
recyclerView.setAdapter(rvAdapter);

getFavoritesUseCase = new GetFavoritesUseCase(UserDIComponent.get().getFavoritesRepository());
new FavoritesActivityDIComponent().inject(this);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package io.catter2.favorites_activity;

import io.catter2.di.UserDIComponent;

public class FavoritesActivityDIComponent {
private FavoritesActivityDIModule module;

public FavoritesActivityDIComponent() {
this.module = new FavoritesActivityDIModule(UserDIComponent.get());
}

public void inject(FavoritesActivity activity) {
activity.injectGetFavoritesUserCase(module.provideGetFavoritesUseCase());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.catter2.favorites_activity;

import io.catter2.di.UserDIComponent;
import io.catter2.favorites.GetFavoritesUseCase;

public class FavoritesActivityDIModule {
public static GetFavoritesUseCase testGetFavoritesUseCase;

private UserDIComponent userDIComponent;

public FavoritesActivityDIModule(UserDIComponent userDIComponent) {
this.userDIComponent = userDIComponent;
}

GetFavoritesUseCase provideGetFavoritesUseCase() {
if (testGetFavoritesUseCase != null) {
return testGetFavoritesUseCase;
}

return new GetFavoritesUseCase(userDIComponent.getFavoritesRepository());
}
}
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_favorites.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="io.catter2.FavoritesActivity">
tools:context="io.catter2.favorites_activity.FavoritesActivity">

<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/content_favorites.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="io.catter2.FavoritesActivity"
tools:context="io.catter2.favorites_activity.FavoritesActivity"
tools:showIn="@layout/activity_favorites"/>

2 changes: 1 addition & 1 deletion app/src/main/res/menu/menu_favorites.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="io.catter2.FavoritesActivity">
tools:context="io.catter2.favorites_activity.FavoritesActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
Expand Down

0 comments on commit ac6265a

Please sign in to comment.