@Override public void call(MainActivity activity, ServerAPI.Response response) { activity.onItems(response.items, name); } },
@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_1); } });
@Override public void call(MainActivity activity, Throwable throwable) { activity.onNetworkError(throwable); } });
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); check1 = (CheckedTextView)findViewById(R.id.check1); check2 = (CheckedTextView)findViewById(R.id.check2); check1.setText(MainPresenter.NAME_1); check2.setText(MainPresenter.NAME_2); check1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_1); } }); check2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_2); } }); ListView listView = (ListView)findViewById(R.id.listView); listView.setAdapter(adapter = new ArrayAdapter<>(this, R.layout.item)); if (savedInstanceState == null) getPresenter().request(MainPresenter.DEFAULT_NAME); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragmentStack = new FragmentStack(this, getSupportFragmentManager(), R.id.fragmentContainer); if (savedInstanceState == null) fragmentStack.replace(new MainFragment()); }
@Test public void testOnItems() throws Exception { MainActivity activity = spy(MainActivity.class); PowerMockito.whenNew(ArrayAdapter.class).withArguments(activity, R.layout.item).thenReturn(arrayAdapter); activity.onCreate(null); ServerAPI.Item[] items = {new ServerAPI.Item(TEXT)}; activity.onItems(items, ""); InOrder inOrder = inOrder(arrayAdapter); inOrder.verify(arrayAdapter, times(1)).clear(); inOrder.verify(arrayAdapter, times(1)).addAll(items); }
@Test public void testClicks() throws Exception { AtomicReference<View.OnClickListener> click1 = requireOnClick(activity, R.id.check1, check1); AtomicReference<View.OnClickListener> click2 = requireOnClick(activity, R.id.check2, check2); activity.onCreate(null); click1.get().onClick(check1); verify(mainPresenter, atLeastOnce()).request(MainPresenter.NAME_1); click2.get().onClick(check1); verify(mainPresenter, atLeastOnce()).request(MainPresenter.NAME_1); }
@Override public void onClick(View v) { ((MainActivity)getActivity()).replace(new MainFragment()); } });
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ServerAPI.Item item = adapter.getItem(position); ((MainActivity)getActivity()).push(new ItemFragment(item.toString())); } });
@Test public void testOnCreate() throws Exception { activity.onCreate(null); verify(check1).setText(MainPresenter.NAME_1); verify(check2).setText(MainPresenter.NAME_2); verify(mainPresenter).request(MainPresenter.NAME_1); }
@Test public void testRequest() throws Throwable { createServerApiMock(); createTestScheduler(); App.setObjectGraph(ObjectGraph.create(new MainPresenterTestModule())); MainPresenter presenter = new MainPresenter(); presenter.onCreate(null); presenter.request(FIRST_NAME + " " + LAST_NAME); MainActivity mainActivity = mock(MainActivity.class); presenter.takeView(mainActivity); testScheduler.triggerActions(); verify(serverAPIMock).getItems(FIRST_NAME, LAST_NAME); verify(mainActivity).onItems(argThat(new ArgumentMatcher<ServerAPI.Item[]>() { @Override public boolean matches(Object argument) { return ((ServerAPI.Item[])argument)[0].text.equals(TEST_TEXT); } }), anyString()); }
@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_2); } });