You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/08/26 07:24:31 UTC
[camel] 02/02: CAMEL-15437: Use mapOf
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 25b1b050c0b19f66d111535d2ea55c62df647099
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 26 08:49:01 2020 +0200
CAMEL-15437: Use mapOf
---
.../support/PropertyBindingSupportFlattenTest.java | 233 +++++++++------------
1 file changed, 96 insertions(+), 137 deletions(-)
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/PropertyBindingSupportFlattenTest.java b/core/camel-core/src/test/java/org/apache/camel/support/PropertyBindingSupportFlattenTest.java
index 6450e13..b175e0d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/PropertyBindingSupportFlattenTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/PropertyBindingSupportFlattenTest.java
@@ -16,7 +16,6 @@
*/
package org.apache.camel.support;
-import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
@@ -26,6 +25,7 @@ import org.apache.camel.PropertyBindingException;
import org.apache.camel.spi.PropertiesComponent;
import org.junit.jupiter.api.Test;
+import static org.apache.camel.util.CollectionHelper.mapOf;
import static org.junit.jupiter.api.Assertions.*;
/**
@@ -54,20 +54,15 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
public void testProperties() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("id", "123");
- work.put("name", "{{companyName}}");
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("age", "33");
- bar.put("{{committer}}", "true");
- bar.put("gold-customer", "true");
- bar.put("work", work);
-
- Map<String, Object> map = new HashMap<>();
- map.put("name", "James");
- map.put("bar", bar);
+ Map<String, Object> map = mapOf(
+ "name", "James",
+ "bar", mapOf(
+ "age", "33",
+ "{{committer}}", "true",
+ "gold-customer", "true",
+ "work", mapOf(
+ "id", "123",
+ "name", "{{companyName}}")));
PropertyBindingSupport.bindWithFlattenProperties(context, foo, map);
@@ -93,20 +88,15 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("id", "456");
- work.put("name", "#property:{{workKey}}");
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("age", "#property:customerAge");
- bar.put("rider", "true");
- bar.put("gold-customer", "true");
- bar.put("work", work);
-
- Map<String, Object> map = new HashMap<>();
- map.put("name", "#property:customerName");
- map.put("bar", bar);
+ Map<String, Object> map = mapOf(
+ "name", "#property:customerName",
+ "bar", mapOf(
+ "age", "#property:customerAge",
+ "rider", "true",
+ "gold-customer", "true",
+ "work", mapOf(
+ "id", "456",
+ "name", "#property:{{workKey}}")));
PropertyBindingSupport.bindWithFlattenProperties(context, foo, map);
@@ -131,24 +121,20 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
public void testWithFluentBuilder() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("name", "{{companyName}}");
+ Map<String, Object> map = mapOf(
+ "bar", mapOf(
+ "age", "33",
+ "rider", "true",
+ "gold-customer", "true",
+ "work", mapOf(
+ "name", "{{companyName}}")));
- Map<String, Object> bar = new HashMap<>();
- bar.put("age", "33");
- bar.put("rider", "true");
- bar.put("gold-customer", "true");
- bar.put("work", work);
-
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
-
- PropertyBindingSupport.build().withCamelContext(context).withTarget(foo).withProperty("name", "James")
+ PropertyBindingSupport.build().withCamelContext(context).withTarget(foo)
+ .withProperty("name", "James")
.withProperty("bar.work.id", "123")
.withFlattenProperties(true)
// and add the rest
- .withProperties(prop).bind();
+ .withProperties(map).bind();
assertEquals("James", foo.getName());
assertEquals(33, foo.getBar().getAge());
@@ -157,50 +143,42 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
assertEquals(123, foo.getBar().getWork().getId());
assertEquals("Acme", foo.getBar().getWork().getName());
- assertTrue(prop.isEmpty(), "Should bind all properties");
+ assertTrue(map.isEmpty(), "Should bind all properties");
}
@Test
public void testPropertiesNoReflection() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> bar = new HashMap<>();
- bar.put("AGE", "33");
+ Map<String, Object> map = mapOf(
+ "name", "James",
+ "bar", mapOf(
+ "AGE", "33"));
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
- prop.put("name", "James");
-
- PropertyBindingSupport.build().withFlattenProperties(true).withReflection(false).bind(context, foo, prop);
+ PropertyBindingSupport.build().withFlattenProperties(true).withReflection(false).bind(context, foo, map);
assertNull(foo.getName());
assertEquals(0, foo.getBar().getAge());
// should not bind any properties as reflection is off
- assertEquals(2, prop.size());
+ assertEquals(2, map.size());
}
@Test
public void testPropertiesIgnoreCase() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("naME", "{{companyName}}");
- work.put("ID", "123");
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("AGE", "33");
- bar.put("{{committer}}", "true");
- bar.put("gOLd-Customer", "true");
- bar.put("WoRk", work);
-
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
- prop.put("name", "James");
+ Map<String, Object> map = mapOf(
+ "nAMe", "James",
+ "bar", mapOf(
+ "age", "33",
+ "{{committer}}", "true",
+ "gOLd-Customer", "true",
+ "WoRk", mapOf(
+ "ID", "123",
+ "naME", "{{companyName}}")));
- PropertyBindingSupport.build().withFlattenProperties(true).withIgnoreCase(true).bind(context, foo, prop);
+ PropertyBindingSupport.build().withFlattenProperties(true).withIgnoreCase(true).bind(context, foo, map);
assertEquals("James", foo.getName());
assertEquals(33, foo.getBar().getAge());
@@ -209,29 +187,24 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
assertEquals(123, foo.getBar().getWork().getId());
assertEquals("Acme", foo.getBar().getWork().getName());
- assertTrue(prop.isEmpty(), "Should bind all properties");
+ assertTrue(map.isEmpty(), "Should bind all properties");
}
@Test
public void testPropertiesDash() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("name", "{{companyName}}");
- work.put("id", "123");
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("age", "33");
- bar.put("{{committer}}", "true");
- bar.put("gold-customer", "true");
- bar.put("work", work);
-
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
- prop.put("name", "James");
+ Map<String, Object> map = mapOf(
+ "name", "James",
+ "bar", mapOf(
+ "age", "33",
+ "{{committer}}", "true",
+ "gold-customer", "true",
+ "work", mapOf(
+ "id", "123",
+ "name", "{{companyName}}")));
- PropertyBindingSupport.build().withFlattenProperties(true).bind(context, foo, prop);
+ PropertyBindingSupport.build().withFlattenProperties(true).bind(context, foo, map);
assertEquals("James", foo.getName());
assertEquals(33, foo.getBar().getAge());
@@ -240,39 +213,28 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
assertEquals(123, foo.getBar().getWork().getId());
assertEquals("Acme", foo.getBar().getWork().getName());
- assertTrue(prop.isEmpty(), "Should bind all properties");
+ assertTrue(map.isEmpty(), "Should bind all properties");
}
@Test
public void testBindPropertiesWithOptionPrefix() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> work = new HashMap<>();
- work.put("name", "{{companyName}}");
- work.put("id", "123");
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("age", "33");
- bar.put("{{committer}}", "true");
- bar.put("gold-customer", "true");
- bar.put("work", work);
-
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
- prop.put("name", "James");
-
- Map<String, Object> other = new HashMap<>();
- other.put("something", "test");
-
- Map<String, Object> root = new HashMap<>();
- root.put("prefix", prop);
- root.put("other", other);
-
- Map<String, Object> my = new HashMap<>();
- my.put("my", root);
-
- PropertyBindingSupport.build().withFlattenProperties(true).withOptionPrefix("my.prefix.").bind(context, foo, my);
+ Map<String, Object> map = mapOf(
+ "my", mapOf(
+ "prefix", mapOf(
+ "name", "James",
+ "bar", mapOf(
+ "age", "33",
+ "{{committer}}", "true",
+ "gold-customer", "true",
+ "work", mapOf(
+ "id", "123",
+ "name", "{{companyName}}")))),
+ "other", mapOf(
+ "something", "test"));
+
+ PropertyBindingSupport.build().withFlattenProperties(true).withOptionPrefix("my.prefix.").bind(context, foo, map);
assertEquals("James", foo.getName());
assertEquals(33, foo.getBar().getAge());
@@ -280,36 +242,30 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
assertTrue(foo.getBar().isGoldCustomer());
assertEquals(123, foo.getBar().getWork().getId());
assertEquals("Acme", foo.getBar().getWork().getName());
- assertEquals("test", other.get("something"));
+ Map other = (Map) map.get("other");
assertEquals(1, other.size());
+ assertEquals("test", other.get("something"));
}
@Test
public void testPropertiesOptionalKey() throws Exception {
Foo foo = new Foo();
- // Map.of requires JDK9 onwards and we are still compatible with Java 8
- Map<String, Object> adr = new HashMap<>();
- adr.put("?addresss", "Some street");
- adr.put("?zip", "1234");
-
- Map<String, Object> work = new HashMap<>();
- work.put("?naME", "{{companyName}}");
- work.put("?ID", "123");
- work.put("address", adr);
-
- Map<String, Object> bar = new HashMap<>();
- bar.put("AGE", "33");
- bar.put("{{committer}}", "true");
- bar.put("gOLd-Customer", "true");
- bar.put("?silver-Customer", "true");
- bar.put("WoRk", work);
-
- Map<String, Object> prop = new HashMap<>();
- prop.put("bar", bar);
- prop.put("name", "James");
-
- PropertyBindingSupport.build().withFlattenProperties(true).withIgnoreCase(true).bind(context, foo, prop);
+ Map<String, Object> map = mapOf(
+ "name", "James",
+ "bar", mapOf(
+ "AGE", "33",
+ "{{committer}}", "true",
+ "gOLd-customer", "true",
+ "?silver-Customer", "true",
+ "WoRk", mapOf(
+ "?ID", "123",
+ "?naME", "{{companyName}}",
+ "adress", mapOf(
+ "?Street", "Some street",
+ "?zip", "1234"))));
+
+ PropertyBindingSupport.build().withFlattenProperties(true).withIgnoreCase(true).bind(context, foo, map);
assertEquals("James", foo.getName());
assertEquals(33, foo.getBar().getAge());
@@ -318,9 +274,12 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
assertEquals(123, foo.getBar().getWork().getId());
assertEquals("Acme", foo.getBar().getWork().getName());
- assertFalse(prop.isEmpty(), "Should NOT bind all properties");
+ assertFalse(map.isEmpty(), "Should NOT bind all properties");
+ Map bar = (Map) map.get("bar");
+ Map work = (Map) bar.get("WoRk");
+ Map adr = (Map) work.get("adress");
assertTrue(bar.containsKey("?silver-Customer"));
- assertTrue(adr.containsKey("?addresss"));
+ assertTrue(adr.containsKey("?Street"));
assertTrue(adr.containsKey("?zip"));
}
@@ -358,7 +317,7 @@ public class PropertyBindingSupportFlattenTest extends ContextTestSupport {
private int age;
private boolean rider;
private Company work; // has no default value but Camel can automatic
- // create one if there is a setter
+ // create one if there is a setter
private boolean goldCustomer;
public int getAge() {