From d2ffdec65fa0731c756c2709e15c5d34fb71d025 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Wed, 12 Jun 2024 09:30:08 +0200 Subject: [PATCH] WhenNotEmpty now accepts maps. --- TODO.md | 2 +- .../component/web/lib/WhenNotEmpty.groovy | 4 +-- .../web/lib/WhenNotEmptyTests.groovy | 27 +++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 web-view-components/src/test/groovy/groowt/view/component/web/lib/WhenNotEmptyTests.groovy diff --git a/TODO.md b/TODO.md index 3a85103..b8429fd 100644 --- a/TODO.md +++ b/TODO.md @@ -16,7 +16,7 @@ - [x] `Switch` and `Case` components - [x] Fix bug with multiline nested component attributes. - [x] `Each` with `Map` -- [ ] `WhenNotEmpty` with `Map` +- [x] `WhenNotEmpty` with `Map` ## 0.1.0 - [x] figure out how to make the GroovyClassLoader consistent between the groovy compiler configuration and the wvc diff --git a/web-view-components/src/main/groovy/groowt/view/component/web/lib/WhenNotEmpty.groovy b/web-view-components/src/main/groovy/groowt/view/component/web/lib/WhenNotEmpty.groovy index b19ce6e..72395ff 100644 --- a/web-view-components/src/main/groovy/groowt/view/component/web/lib/WhenNotEmpty.groovy +++ b/web-view-components/src/main/groovy/groowt/view/component/web/lib/WhenNotEmpty.groovy @@ -5,7 +5,7 @@ import groowt.view.component.runtime.DefaultComponentWriter class WhenNotEmpty extends DelegatingWebViewComponent { - private final Collection items + private final Object items WhenNotEmpty(Map attr) { items = attr.items @@ -14,7 +14,7 @@ class WhenNotEmpty extends DelegatingWebViewComponent { @Override protected View getDelegate() { return { Writer w -> - if (!items.empty) { + if (items instanceof Collection && !items.empty || items instanceof Map && !items.isEmpty()) { def cw = new DefaultComponentWriter(w, context.renderContext, context) children.each { cw << it } } diff --git a/web-view-components/src/test/groovy/groowt/view/component/web/lib/WhenNotEmptyTests.groovy b/web-view-components/src/test/groovy/groowt/view/component/web/lib/WhenNotEmptyTests.groovy new file mode 100644 index 0000000..91af6ec --- /dev/null +++ b/web-view-components/src/test/groovy/groowt/view/component/web/lib/WhenNotEmptyTests.groovy @@ -0,0 +1,27 @@ +package groowt.view.component.web.lib + +import org.junit.jupiter.api.Test + +class WhenNotEmptyTests extends AbstractWebViewComponentTests { + + @Test + void emptyCollection() { + doTest('Hello, World!', '') + } + + @Test + void emptyMap() { + doTest('Hello, World!', '') + } + + @Test + void nonEmptyCollection() { + doTest('012', '012') + } + + @Test + void nonEmptyMap() { + doTest('a: 0', 'a: 0') + } + +}