package com.badoo.chateau.example.ui.conversations.create.namegroup; import android.content.Intent; import android.support.annotation.NonNull; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; import com.badoo.chateau.example.BaseTestCase; import com.badoo.chateau.example.R; import com.badoo.chateau.example.data.model.ExampleConversation; import com.badoo.chateau.example.ui.Injector; import com.badoo.chateau.ui.conversations.create.namegroup.NameGroupPresenter; import com.badoo.chateau.ui.conversations.create.namegroup.NameGroupPresenter.NameGroupFlowListener; import com.badoo.chateau.ui.conversations.create.namegroup.NameGroupPresenter.NameGroupView; import org.junit.Test; import org.junit.runner.RunWith; import java.util.Collections; import java.util.List; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.typeText; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @RunWith(AndroidJUnit4.class) public class NameGroupActivityTest extends BaseTestCase<NameGroupActivity> { private static final String NAME = "group name"; private NameGroupPresenter mPresenter; @Override protected Class<NameGroupActivity> getActivityClass() { return NameGroupActivity.class; } @Override protected Intent getActivityIntent() { List<String> users = Collections.singletonList(""); return NameGroupActivity.create(InstrumentationRegistry.getContext(), users); } @Override protected void beforeActivityLaunched() { mPresenter = mock(NameGroupPresenter.class); Injector.register(NameGroupActivity.class, new NameGroupActivity.DefaultConfiguration() { @Override protected NameGroupPresenter createNameGroupPresenter(@NonNull NameGroupView nameGroupView, @NonNull NameGroupFlowListener<ExampleConversation> flowListener, List<String> userIds) { return mPresenter; } }); } @Test public void setNameForGroup() { // Given onView(withId(R.id.nameGroup_groupName_inner)).perform(typeText(NAME)); // When onView(withId(R.id.nameGroup_createGroup)).perform(click()); // Then verify(mPresenter).onCreateGroupClicked(NAME); } }