This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 53c4e2a5e56 ✅ Add tests (#8450)
53c4e2a5e56 is described below
commit 53c4e2a5e5694886c410050d28b9212e690f0baa
Author: Federico Mariani <[email protected]>
AuthorDate: Thu Sep 29 22:25:57 2022 +0200
✅ Add tests (#8450)
---
...gStrategyTest.java => JacksonFeaturesTest.java} | 43 +++++++++++++--------
.../jackson/JacksonMarshalNamingStrategyTest.java | 45 ++++++++++++++--------
2 files changed, 56 insertions(+), 32 deletions(-)
diff --git
a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonFeaturesTest.java
similarity index 52%
copy from
components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
copy to
components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonFeaturesTest.java
index 10316cbb090..21322c4c950 100644
---
a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
+++
b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonFeaturesTest.java
@@ -16,41 +16,54 @@
*/
package org.apache.camel.component.jackson;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.MapperFeature;
+import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class JacksonMarshalNamingStrategyTest extends CamelTestSupport {
+public class JacksonFeaturesTest extends CamelTestSupport {
@Test
- public void testMarshalAndUnmarshalMap() throws Exception {
- PojoNamingStrategy pojoNamingStrategy = new PojoNamingStrategy();
- pojoNamingStrategy.setFieldOne("test");
- pojoNamingStrategy.setFieldTwo("supertest");
-
+ public void testEnableDeserializationFeature() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.message(0).body().isNull();
+
+ template.send("direct:format", exchange ->
exchange.getIn().setBody("[]"));
+
mock.expectedMessageCount(1);
- Object marshalled = template.requestBody("direct:in",
pojoNamingStrategy);
- String marshalledAsString =
context.getTypeConverter().convertTo(String.class, marshalled);
- assertEquals("{\"field.one\":\"test\",\"field.two\":\"supertest\"}",
marshalledAsString);
mock.assertIsSatisfied();
}
+ @Test
+ public void testEnableMapperFeature() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.message(0).body().isInstanceOf(TestPojo.class);
+
+ template.send("direct:format", exchange ->
exchange.getIn().setBody("{\"nAmE\": \"test\"}"));
+
+ mock.expectedMessageCount(1);
+ mock.assertIsSatisfied();
+ }
+
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() {
- JacksonDataFormat format = new JacksonDataFormat();
- format.setNamingStrategy("LOWER_DOT_CASE");
- from("direct:in").marshal(format).to("mock:result");
+ JacksonDataFormat format = new
JacksonDataFormat(TestPojo.class);
+
format.enableFeature(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT);
+
format.enableFeature(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES);
+ format.disableFeature(SerializationFeature.INDENT_OUTPUT);
+
format.disableFeature(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
+ format.disableFeature(MapperFeature.APPLY_DEFAULT_VALUES);
+
+ from("direct:format").unmarshal(format).to("mock:result");
}
};
}
-
}
diff --git
a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
index 10316cbb090..8317d0d1291 100644
---
a/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
+++
b/components/camel-jackson/src/test/java/org/apache/camel/component/jackson/JacksonMarshalNamingStrategyTest.java
@@ -16,41 +16,52 @@
*/
package org.apache.camel.component.jackson;
-import org.apache.camel.builder.RouteBuilder;
+import java.util.stream.Stream;
+
+import org.apache.camel.builder.RouteConfigurationBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class JacksonMarshalNamingStrategyTest extends CamelTestSupport {
- @Test
- public void testMarshalAndUnmarshalMap() throws Exception {
+ @ParameterizedTest
+ @MethodSource("namingStrategies")
+ public void testNamingStrategy(String namingStrategy, String expectedJson)
throws Exception {
PojoNamingStrategy pojoNamingStrategy = new PojoNamingStrategy();
pojoNamingStrategy.setFieldOne("test");
pojoNamingStrategy.setFieldTwo("supertest");
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
- Object marshalled = template.requestBody("direct:in",
pojoNamingStrategy);
- String marshalledAsString =
context.getTypeConverter().convertTo(String.class, marshalled);
- assertEquals("{\"field.one\":\"test\",\"field.two\":\"supertest\"}",
marshalledAsString);
-
- mock.assertIsSatisfied();
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() {
- return new RouteBuilder() {
+ context.addRoutes(new RouteConfigurationBuilder() {
@Override
- public void configure() {
+ public void configuration() throws Exception {
JacksonDataFormat format = new JacksonDataFormat();
- format.setNamingStrategy("LOWER_DOT_CASE");
+ format.setNamingStrategy(namingStrategy);
from("direct:in").marshal(format).to("mock:result");
}
- };
+ });
+
+ Object marshalled = template.requestBody("direct:in",
pojoNamingStrategy);
+ String marshalledAsString =
context.getTypeConverter().convertTo(String.class, marshalled);
+ assertEquals(expectedJson, marshalledAsString);
+
+ mock.assertIsSatisfied();
}
+ private static Stream<Arguments> namingStrategies() {
+ return Stream.of(
+ Arguments.of("LOWER_DOT_CASE",
"{\"field.one\":\"test\",\"field.two\":\"supertest\"}"),
+ Arguments.of("SNAKE_CASE",
"{\"field_one\":\"test\",\"field_two\":\"supertest\"}"),
+ Arguments.of("LOWER_CAMEL_CASE",
"{\"fieldOne\":\"test\",\"fieldTwo\":\"supertest\"}"),
+ Arguments.of("LOWER_CASE",
"{\"fieldone\":\"test\",\"fieldtwo\":\"supertest\"}"),
+ Arguments.of("KEBAB_CASE",
"{\"field-one\":\"test\",\"field-two\":\"supertest\"}"),
+ Arguments.of("UPPER_CAMEL_CASE",
"{\"FieldOne\":\"test\",\"FieldTwo\":\"supertest\"}"));
+ }
}