package me.tatarka.bindingcollectionadapter2; import android.databinding.DataBindingUtil; import android.databinding.ViewDataBinding; import android.support.test.annotation.UiThreadTest; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import java.util.Arrays; import java.util.List; import me.tatarka.bindingcollectionadapter2.test.R; import static org.assertj.core.api.Assertions.assertThat; @RunWith(AndroidJUnit4.class) public class ViewPagerInflationTest { @Rule public ActivityTestRule<EmptyActivity> activityTestRule = new ActivityTestRule<>(EmptyActivity.class); private LayoutInflater inflater; @Before public void setup() throws Exception { inflater = LayoutInflater.from(activityTestRule.getActivity()); } @Test @UiThreadTest public void testRecyclerView() { List<String> items = Arrays.asList("one", "two", "three"); TestHelpers.ViewModel viewModel = new TestHelpers.ViewModel.Builder(items, ItemBinding.<String>of(BR.item, R.layout.item)).build(); ViewDataBinding binding = DataBindingUtil.inflate(inflater, R.layout.view_pager, null, false); binding.setVariable(BR.viewModel, viewModel); binding.executePendingBindings(); ViewPager viewPager = (ViewPager) binding.getRoot(); @SuppressWarnings("unchecked") BindingViewPagerAdapter<String> adapter = (BindingViewPagerAdapter<String>) viewPager.getAdapter(); assertThat(TestHelpers.iterable(adapter)).containsExactlyElementsOf(items); } @Test @UiThreadTest public void testRecyclerViewAdapter() { List<String> items = Arrays.asList("one", "two", "three"); TestHelpers.ViewModel viewModel = new TestHelpers.ViewModel.Builder(items, ItemBinding.<String>of(BR.item, R.layout.item)).build(); ViewDataBinding binding = DataBindingUtil.inflate(inflater, R.layout.view_pager_adapter, null, false); binding.setVariable(BR.viewModel, viewModel); binding.executePendingBindings(); ViewPager viewPager = (ViewPager) binding.getRoot(); @SuppressWarnings("unchecked") BindingViewPagerAdapter<String> adapter = (BindingViewPagerAdapter<String>) viewPager.getAdapter(); assertThat(adapter).isInstanceOf(TestHelpers.MyBindingViewPagerAdapter.class); } }