/** Binds each value in {@code p} to a view created by {@code factory}. */ public void to(final IsInsertPanel panel, final ListViewFactory<P> factory) { to(new InsertPanelListLikeAdapter(panel), factory); }
@Test public void newPresentersAreAddedToPanel() { binder.bind(names).to(parent, panel, presenterFactory); assertThat(panel.getWidgetCount(), is(0)); names.add("one"); assertLabel(panel.getIsWidget(0), "one"); assertThat(parent.getChildren().size(), is(1)); }
@Test public void oldPresentersAreRemovedFromPanel() { binder.bind(names).to(parent, panel, presenterFactory); names.add("one"); names.add("two"); assertThat(panel.getWidgetCount(), is(2)); assertThat(parent.getChildren().size(), is(2)); names.remove("one"); assertThat(panel.getWidgetCount(), is(1)); assertLabel(panel.getIsWidget(0), "two"); assertThat(parent.getChildren().size(), is(1)); }
@Test public void bindDoesNotNullPointerExceptionForViews() { names.set(null); binder.bind(names).to(panel, viewFactory); names.set(Copy.list("one")); assertThat(panel.getWidgetCount(), is(1)); }
@Test public void newNamesAreAddedToPanel() { binder.bind(names).to(panel, viewFactory); assertThat(panel.getWidgetCount(), is(0)); names.add("one"); assertLabel(panel.getIsWidget(0), "one"); }
@Test public void initialPresentersAreAddedToPanel() { names.add("one"); names.add("two"); binder.bind(names).to(parent, panel, presenterFactory); assertLabel(panel.getIsWidget(0), "one"); assertLabel(panel.getIsWidget(1), "two"); assertThat(parent.getChildren().size(), is(2)); }
@Test public void toTextList() { names.add("one"); StubTextList list = new StubTextList(); binder.bind(names).to(list); assertThat(list.getList(), contains("one")); names.add("two"); assertThat(list.getList(), contains("one", "two")); }
@Test public void reordersToDoNotRequireCreatingNewViews() { binder.bind(names).to(panel, viewFactory); names.set(list("one", "two")); assertThat(panel.getWidgetCount(), is(2)); assertLabel(panel.getIsWidget(0), "one"); assertThat(viewFactory.created, is(2)); names.set(list("two", "one")); assertThat(panel.getWidgetCount(), is(2)); assertLabel(panel.getIsWidget(0), "two"); assertThat(viewFactory.created, is(2)); }
@Test public void oldNamesAreRemovedFromPanel() { binder.bind(names).to(panel, viewFactory); names.add("one"); names.add("two"); assertThat(panel.getWidgetCount(), is(2)); names.remove("one"); assertThat(panel.getWidgetCount(), is(1)); assertLabel(panel.getIsWidget(0), "two"); }
@Test public void reordersToDoNotRequireCreatingNewPresenters() { binder.bind(names).to(parent, panel, presenterFactory); names.set(list("one", "two")); assertThat(panel.getWidgetCount(), is(2)); assertLabel(panel.getIsWidget(0), "one"); assertThat(presenterFactory.created, is(2)); names.set(list("two", "one")); assertThat(panel.getWidgetCount(), is(2)); assertLabel(panel.getIsWidget(0), "two"); assertThat(presenterFactory.created, is(2)); }
@Test public void bindDoesNotNullPointerExceptionForPresenters() { names.set(null); ParentPresenter parent = bind(new ParentPresenter()); binder.bind(names).to(parent, panel, presenterFactory); names.set(Copy.list("one")); assertThat(panel.getWidgetCount(), is(1)); }
@Test public void newNamesAreAddedWithIndexToPanel() { binder.bind(names).to(panel, viewFactory); names.add("one"); assertLabel(panel.getIsWidget(0), "one"); names.add(0, "two"); assertLabel(panel.getIsWidget(0), "two"); }
@Test public void initialNamesAreAddedToPanel() { names.add("one"); names.add("two"); binder.bind(names).to(panel, viewFactory); assertLabel(panel.getIsWidget(0), "one"); assertLabel(panel.getIsWidget(1), "two"); }
@Test public void newNamesAreAddedAfterExistingContent() { panel.add(viewFactory.create("existing")); binder.bind(names).to(panel, viewFactory); names.add("one"); assertLabel(panel.getIsWidget(0), "existing"); assertLabel(panel.getIsWidget(1), "one"); }