@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_2); } });
public void request(String name) { this.name = name; start(REQUEST_ITEMS); } }
@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 onCreate(Bundle savedState) { super.onCreate(savedState); if (savedState != null) name = savedState.getString(NAME_KEY); restartableLatestCache(REQUEST_ITEMS, new Func0<Observable<ServerAPI.Response>>() { @Override public Observable<ServerAPI.Response> call() { return App.getServerAPI() .getItems(name.split("\\s+")[0], name.split("\\s+")[1]) .observeOn(AndroidSchedulers.mainThread()); } }, new Action2<MainFragment, ServerAPI.Response>() { @Override public void call(MainFragment activity, ServerAPI.Response response) { activity.onItems(response.items, name); } }, new Action2<MainFragment, Throwable>() { @Override public void call(MainFragment activity, Throwable throwable) { activity.onNetworkError(throwable); } }); if (savedState == null) start(REQUEST_ITEMS); }
@Override public void onCreate(Bundle savedState) { super.onCreate(savedState); if (savedState != null) name = savedState.getString(NAME_KEY); restartableLatestCache(REQUEST_ITEMS, new Func0<Observable<ServerAPI.Response>>() { @Override public Observable<ServerAPI.Response> call() { return App.getServerAPI() .getItems(name.split("\\s+")[0], name.split("\\s+")[1]) .observeOn(AndroidSchedulers.mainThread()); } }, new Action2<MainActivity, ServerAPI.Response>() { @Override public void call(MainActivity activity, ServerAPI.Response response) { activity.onItems(response.items, name); } }, new Action2<MainActivity, Throwable>() { @Override public void call(MainActivity activity, Throwable throwable) { activity.onNetworkError(throwable); } }); if (savedState == null) start(REQUEST_ITEMS); }
@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_1); } });
public void request(String name) { this.name = name; start(REQUEST_ITEMS); } }
@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_2); } });
@Override public void onClick(View v) { getPresenter().request(MainPresenter.NAME_1); } });
@Override public void onCreate(Bundle bundle) { super.onCreate(bundle); if (bundle == null) getPresenter().request(MainPresenter.DEFAULT_NAME); }
@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); }
@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); }
@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); }