private ListAdapter prepareWithListAdapter() { ListAdapter adapter = new ListAdapter("a", "b", "c"); listView.setAdapter(adapter); shadowOf(listView).populateItems(); return adapter; }
private ShadowListView prepareListWithThreeItems() { listView.setAdapter(new ShadowCountingAdapter(3)); shadowOf(listView).populateItems(); return shadowOf(listView); }
@Test public void clickItemContainingText_shouldPerformItemClickOnList_arrayAdapter() throws Exception { ArrayList<String> adapterFileList = new ArrayList<>(); adapterFileList.add("Item 1"); adapterFileList.add("Item 2"); adapterFileList.add("Item 3"); final ArrayAdapter<String> adapter = new ArrayAdapter<>(application, android.R.layout.simple_list_item_1, adapterFileList); listView.setAdapter(adapter); shadowOf(listView).populateItems(); ShadowListView shadowListView = shadowOf(listView); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { transcript.add("clicked on item " + adapter.getItem(position)); } }); shadowListView.clickFirstItemContainingText("Item 3"); assertThat(transcript).containsExactly("clicked on item Item 3"); }
shadowOf(list).populateItems();
private void testItemClickLaunchesActivity(int index, String expectedActivity) { ActivityController activityController = Robolectric.buildActivity(MainActivity.class).create(); Activity activity = (Activity)activityController.get(); activityController.start(); activityController.resume(); ListView list = (ListView)activity.findViewById(R.id.list); ShadowListView shadowList = shadowOf(list); shadowList.populateItems(); // First item should be the Budgets, second should be Transactions shadowList.performItemClick(index); testNextStartedActivity(activity, expectedActivity); }
@Test public void clickOnBudget() { ActivityController activityController = Robolectric.buildActivity(BudgetActivity.class).create(); Activity activity = (Activity)activityController.get(); DBHelper db = new DBHelper(activity); db.insertBudget("name", 100); db.close(); activityController.start(); activityController.resume(); ListView list = (ListView)activity.findViewById(R.id.list); ShadowListView shadowList = shadowOf(list); shadowList.populateItems(); shadowList.performItemClick(0); ShadowActivity shadowActivity = shadowOf(activity); Intent startedIntent = shadowActivity.getNextStartedActivity(); ComponentName name = startedIntent.getComponent(); assertEquals("protect.budgetwatch/.TransactionActivity", name.flattenToShortString()); Bundle bundle = startedIntent.getExtras(); String budget = bundle.getString("budget"); assertEquals("name", budget); } }