From cc096688193297016c94a98d0a75a76cd0bc60a1 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 17:16:28 +0000 Subject: [PATCH 1/2] fix: add null check in setFooterToolbar Close #131 --- .../addons/gridhelpers/FooterToolbarGridHelper.java | 2 ++ .../addons/gridhelpers/test/FooterToolbarTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+) 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..40db19e 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 @@ -23,6 +23,7 @@ import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import org.junit.Test; +import org.junit.jupiter.api.Assertions; public class FooterToolbarTest { @@ -42,4 +43,14 @@ public void testSetFooterToolbarBeforeColumnsConfiguredThrowsException() { var toolbarFooter = new HorizontalLayout(); GridHelper.addToolbarFooter(grid, toolbarFooter); } + + @Test + public void testSetFooterToolbarWithNullToolbarThrowsException() { + Grid grid = new Grid<>(Bean.class, false); + grid.addColumn(x -> x).setHeader("Header"); + NullPointerException exception = Assertions.assertThrows(NullPointerException.class, () -> { + GridHelper.addToolbarFooter(grid, null); + }); + Assertions.assertEquals("Toolbar component must not be null", exception.getMessage()); + } } From 73431643975ac239f52230f0e50f5228e7320de0 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 11 Jun 2025 17:30:47 +0000 Subject: [PATCH 2/2] WIP: fix test case --- .../addons/gridhelpers/test/FooterToolbarTest.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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 40db19e..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,11 +19,12 @@ */ 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; -import org.junit.jupiter.api.Assertions; public class FooterToolbarTest { @@ -44,13 +45,15 @@ public void testSetFooterToolbarBeforeColumnsConfiguredThrowsException() { GridHelper.addToolbarFooter(grid, toolbarFooter); } - @Test + @Test(expected = NullPointerException.class) public void testSetFooterToolbarWithNullToolbarThrowsException() { Grid grid = new Grid<>(Bean.class, false); grid.addColumn(x -> x).setHeader("Header"); - NullPointerException exception = Assertions.assertThrows(NullPointerException.class, () -> { + try { GridHelper.addToolbarFooter(grid, null); - }); - Assertions.assertEquals("Toolbar component must not be null", exception.getMessage()); + } catch (NullPointerException e) { + Assert.assertEquals("Toolbar component must not be null", e.getMessage()); + throw e; + } } }