package com.fernandocejas.android10.sample.test.viewmodel; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import com.fernandocejas.android10.sample.data.dto.User; import com.fernandocejas.android10.sample.presentation.R; import com.fernandocejas.android10.sample.presentation.view.activity.UserDetailsActivity; import com.fernandocejas.android10.sample.presentation.view.fragment.UserDetailsFragment; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; /** * Created by rocko on 15-11-6. */ @RunWith(AndroidJUnit4.class) public class UserDetailsViewModelTest { private final static int FAKE_USER_ID = 1; private final static String FAKE_EMAIL = "FAKE_EMAIL@fake.com"; private final static String FAKE_DESCRIPTION = "FAKE_DESCRIPTION"; private final static int FAKE_FOLLOWERS = 300; private User fakeUser; private UserDetailsFragment detailsFragment; @Rule public ActivityTestRule<UserDetailsActivity> mActivityRule = new ActivityTestRule(UserDetailsActivity.class); @Before public void setUp() { fakeUser = makeFakeUser(); detailsFragment = (UserDetailsFragment) mActivityRule.getActivity().getFragment(UserDetailsFragment.TAG); } @Test public void testShowUser() throws Exception { detailsFragment.getViewModel().showUserDetails(fakeUser); // UserDetailsBinding userDetailsBinding = detailsFragment.getBinding(); onView(withId(R.id.tv_email)).check(matches(withText(FAKE_EMAIL))); onView(withId(R.id.tv_followers)).check(matches(withText(String.valueOf(FAKE_FOLLOWERS)))); onView(withId(R.id.tv_description)).check(matches(withText(FAKE_DESCRIPTION))); } private User makeFakeUser() { User fakeUser = new User(FAKE_USER_ID); fakeUser.setEmail(FAKE_EMAIL); fakeUser.setFollowers(FAKE_FOLLOWERS); fakeUser.setDescription(FAKE_DESCRIPTION); return fakeUser; } }