package de.flower.rmt.ui.panel; import de.flower.common.model.db.entity.IEntity; import de.flower.common.test.wicket.AbstractWicketUnitTests; import org.apache.wicket.markup.Markup; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.testng.annotations.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author flowerrrr */ public class ListViewPanelTest extends AbstractWicketUnitTests { @Test public void testRender() { wicketTester.startComponentInPage(new TestPanel(Model.of(Arrays.asList(new TestEntity(), new TestEntity())))); wicketTester.dumpComponentWithPage(); wicketTester.assertInvisible("panel:listContainer:noEntry"); } @Test public void testNoEntry() { wicketTester.startComponentInPage(new TestPanel(Model.ofList(new ArrayList()))); wicketTester.dumpComponentWithPage(); // wicketTester.debugComponentTrees(); wicketTester.assertVisible("panel:listContainer:noEntry"); } public static class TestPanel extends Panel { public TestPanel(IModel<?> listModel) { super("panel"); ListViewPanel listView = new ListViewPanel<IEntity>("listContainer", (IModel<List<IEntity>>) listModel, Model.of("no entry in this list")) { // @Override protected void populateItem(final ListItem<IEntity> item) { item.add(new Label("label", item.getModelObject().toString())); } }; add(listView); } @Override public Markup getAssociatedMarkup() { return Markup.of("<wicket:panel><div wicket:id='listContainer'><table><tr><td>Label</td></tr>\n<tr wicket:id='list'><td><span wicket:id='label'/></td>\n</tr>\n</table></div></wicket:panel>"); } } public static class TestEntity implements IEntity { @Override public boolean isNew() { return false; } @Override public Long getId() { return (long) hashCode(); } } }