Hi Guys

I am new to WicketTester and testing pages here. I am also getting back
into wicket slowly.

I have a page which currently simply adds a panel (more to come), the panel
contains a DataTable. I am not interested in the content of the table just
that the page renders with an empty table.

MyPage -> MyPanel -> Adds a DataTable, using dataproviders.

The problem is that when I do tester.startPage(MyPage.class) it tries to
add the data table and fails unless data provider size is set to 0.

MyPage Code

public class MyPage extends BasePage<AdminViewPage> {

private NotificationPanel notificationPanel;
private BootstrapDefaultDataTable<UserAccount, String> userTable;

public MyPage() {
notificationPanel = new NotificationPanel("notification");
notificationPanel.setOutputMarkupId(true);
notificationPanel.hideAfter(Duration.seconds(2));
add(notificationPanel);
add(new MyPanel("users-table-panel"));
}
}

MyPanel code

public class MyPanel extends Panel {

    private NotificationPanel notificationPanel;
    private BootstrapDefaultDataTable<UserAccount, String> userTable;


    public UsersTablePanel(String id) {
        super(id);
        notificationPanel = new NotificationPanel("notification");
        notificationPanel.setOutputMarkupId(true);
        notificationPanel.hideAfter(Duration.seconds(2));
        add(notificationPanel);
        usersTable();
    }

    private void usersTable() {
        List<IColumn<UserAccount, String>> columns = new ArrayList<>();
        columns.add(new PropertyColumn<>(Model.of("First Name"),
"firstName", "firstName"));
        columns.add(new PropertyColumn<>(Model.of("Last Name"),
"lastName"));
        columns.add(new PropertyColumn<>(Model.of("Email Address"),
"email"));
        columns.add(new PropertyColumn<>(Model.of("Username"), "userName"));

        userTable = new BootstrapDefaultDataTable<>("users-table", columns,
new DataProvider(), 20);
        userTable.add(new TableBehavior().hover().bordered());
        add(userTable);
    }
}

MyPageTest Code

public class AdminViewPageTest extends WicketApplicationTest {

private WicketTester tester;

private UsersDataProvider usersDataProvider;

private AdminViewPage adminViewPage;

@Before
public void setUp() throws Exception {
super.setUp();
usersDataProvider = mock(UsersDataProvider.class);
adminViewPage = new AdminViewPage();
doNothing().when(usersDataProvider).checkDAO();
when(usersDataProvider.size()).thenReturn(0L);
tester = getTester();
tester.startPage(adminViewPage);
}

@Test
public void renderSuccessfully() throws Exception {
tester.assertRenderedPage(AdminViewPage.class);
}

}

Any pointers would be great.

Thanks

David

Reply via email to