diff --git a/src/main/java/com/flowingcode/vaadin/addons/gridhelpers/FooterToolbarGridHelper.java b/src/main/java/com/flowingcode/vaadin/addons/gridhelpers/FooterToolbarGridHelper.java index 6c0cd53..3e3fa4b 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/gridhelpers/FooterToolbarGridHelper.java +++ b/src/main/java/com/flowingcode/vaadin/addons/gridhelpers/FooterToolbarGridHelper.java @@ -24,6 +24,7 @@ import com.vaadin.flow.component.grid.FooterRow.FooterCell; import com.vaadin.flow.component.grid.Grid; import java.io.Serializable; +import java.util.Objects; import lombok.RequiredArgsConstructor; @SuppressWarnings("serial") @@ -35,6 +36,7 @@ class FooterToolbarGridHelper implements Serializable { private FooterCell footerCell; public void setFooterToolbar(Component toolBar) { + Objects.requireNonNull(toolBar, "Toolbar component must not be null"); Grid grid = helper.getGrid(); if (grid.getColumns().isEmpty()) { throw new IllegalStateException("Cannot set footer toolbar: Grid columns have not been configured."); diff --git a/src/test/java/com/flowingcode/vaadin/addons/gridhelpers/test/FooterToolbarTest.java b/src/test/java/com/flowingcode/vaadin/addons/gridhelpers/test/FooterToolbarTest.java index def6cf0..eadc936 100644 --- a/src/test/java/com/flowingcode/vaadin/addons/gridhelpers/test/FooterToolbarTest.java +++ b/src/test/java/com/flowingcode/vaadin/addons/gridhelpers/test/FooterToolbarTest.java @@ -19,9 +19,11 @@ */ package com.flowingcode.vaadin.addons.gridhelpers.test; +import com.flowingcode.vaadin.addons.gridhelpers.GridHelper; import com.flowingcode.vaadin.addons.gridhelpers.GridHelper; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; +import org.junit.Assert; import org.junit.Test; public class FooterToolbarTest { @@ -42,4 +44,16 @@ public void testSetFooterToolbarBeforeColumnsConfiguredThrowsException() { var toolbarFooter = new HorizontalLayout(); GridHelper.addToolbarFooter(grid, toolbarFooter); } + + @Test(expected = NullPointerException.class) + public void testSetFooterToolbarWithNullToolbarThrowsException() { + Grid grid = new Grid<>(Bean.class, false); + grid.addColumn(x -> x).setHeader("Header"); + try { + GridHelper.addToolbarFooter(grid, null); + } catch (NullPointerException e) { + Assert.assertEquals("Toolbar component must not be null", e.getMessage()); + throw e; + } + } }