mirror of
https://github.com/jlengrand/quarkus.git
synced 2026-03-10 08:41:22 +00:00
Merge pull request #7279 from mkouba/issue-6870
Qute - fix built-in template extension method for Map
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package io.quarkus.qute.deployment;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||
import org.jboss.shrinkwrap.api.asset.StringAsset;
|
||||
import org.jboss.shrinkwrap.api.spec.JavaArchive;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import io.quarkus.qute.Template;
|
||||
import io.quarkus.test.QuarkusUnitTest;
|
||||
|
||||
public class TreeMapDataTest {
|
||||
|
||||
@RegisterExtension
|
||||
static final QuarkusUnitTest config = new QuarkusUnitTest()
|
||||
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
|
||||
.addAsResource(new StringAsset("{map.get(1)}:{map.entrySet.iterator.next.value}"), "templates/map.html"));
|
||||
|
||||
@Inject
|
||||
Template map;
|
||||
|
||||
@Test
|
||||
public void testTreeMap() {
|
||||
Map<Integer, String> treeMap = new TreeMap<>(Integer::compare);
|
||||
treeMap.put(2, "bar");
|
||||
treeMap.put(1, "foo");
|
||||
assertEquals("foo:foo", map.data("map", treeMap).render());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,16 +14,14 @@ public class BuiltinTemplateExtensions {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@TemplateExtension(matchName = ANY)
|
||||
static Object map(Map map, String name) {
|
||||
Object val = map.get(name);
|
||||
if (val != null) {
|
||||
return val;
|
||||
}
|
||||
switch (name) {
|
||||
case "keys":
|
||||
case "keySet":
|
||||
return map.keySet();
|
||||
case "values":
|
||||
return map.values();
|
||||
case "entrySet":
|
||||
return map.entrySet();
|
||||
case "size":
|
||||
return map.size();
|
||||
case "empty":
|
||||
|
||||
@@ -199,6 +199,8 @@ public final class ValueResolvers {
|
||||
return CompletableFuture.completedFuture(map.keySet());
|
||||
case "values":
|
||||
return CompletableFuture.completedFuture(map.values());
|
||||
case "entrySet":
|
||||
return CompletableFuture.completedFuture(map.entrySet());
|
||||
case "size":
|
||||
return CompletableFuture.completedFuture(map.size());
|
||||
case "empty":
|
||||
|
||||
Reference in New Issue
Block a user