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')
+ }
+
+}