4646
4747import com .fasterxml .jackson .core .JsonGenerator ;
4848import com .fasterxml .jackson .databind .ObjectMapper ;
49+ import com .fasterxml .jackson .databind .node .ObjectNode ;
50+ import com .fasterxml .jackson .databind .node .TextNode ;
4951
5052/**
5153 * @author Mark Fisher
5860public class ObjectToJsonTransformerTests {
5961
6062 @ Test
61- public void simpleStringPayload () throws Exception {
63+ public void simpleStringPayload () {
6264 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
63- String result = (String ) transformer .transform (new GenericMessage <String >("foo" )).getPayload ();
65+ String result = (String ) transformer .transform (new GenericMessage <>("foo" )).getPayload ();
6466 assertEquals ("\" foo\" " , result );
6567 }
6668
6769 @ Test
68- public void withDefaultContentType () throws Exception {
70+ public void withDefaultContentType () {
6971 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
70- Message <?> result = transformer .transform (new GenericMessage <String >("foo" ));
72+ Message <?> result = transformer .transform (new GenericMessage <>("foo" ));
7173 assertEquals (ObjectToJsonTransformer .JSON_CONTENT_TYPE , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
7274 }
7375
7476 @ Test
75- public void withProvidedContentType () throws Exception {
77+ public void withProvidedContentType () {
7678 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
77- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
79+ Message <?> message = MessageBuilder .withPayload ("foo" )
80+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
81+ .build ();
7882 Message <?> result = transformer .transform (message );
7983 assertEquals ("text/xml" , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
8084 }
8185
8286 @ Test
83- public void withProvidedContentTypeWithOverride () throws Exception {
87+ public void withProvidedContentTypeWithOverride () {
8488 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
8589 transformer .setContentType (ObjectToJsonTransformer .JSON_CONTENT_TYPE );
86- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
90+ Message <?> message = MessageBuilder .withPayload ("foo" )
91+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
92+ .build ();
8793 Message <?> result = transformer .transform (message );
8894 assertEquals (ObjectToJsonTransformer .JSON_CONTENT_TYPE , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
8995 }
9096
9197 @ Test
92- public void withProvidedContentTypeAsEmptyString () throws Exception {
98+ public void withProvidedContentTypeAsEmptyString () {
9399 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
94100 transformer .setContentType ("" );
95101 Message <?> message = MessageBuilder .withPayload ("foo" ).build ();
@@ -98,24 +104,26 @@ public void withProvidedContentTypeAsEmptyString() throws Exception {
98104 }
99105
100106 @ Test
101- public void withProvidedContentTypeAsEmptyStringDoesNotOverride () throws Exception {
107+ public void withProvidedContentTypeAsEmptyStringDoesNotOverride () {
102108 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
103109 transformer .setContentType ("" );
104- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
110+ Message <?> message = MessageBuilder .withPayload ("foo" )
111+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
112+ .build ();
105113 Message <?> result = transformer .transform (message );
106114 assertEquals ("text/xml" , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
107115 }
108116
109117 @ Test (expected = IllegalArgumentException .class )
110- public void withProvidedContentTypeAsNull () throws Exception {
118+ public void withProvidedContentTypeAsNull () {
111119 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
112120 transformer .setContentType (null );
113121 }
114122
115123 @ Test
116- public void simpleIntegerPayload () throws Exception {
124+ public void simpleIntegerPayload () {
117125 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
118- String result = (String ) transformer .transform (new GenericMessage <Integer >(123 )).getPayload ();
126+ String result = (String ) transformer .transform (new GenericMessage <>(123 )).getPayload ();
119127 assertEquals ("123" , result );
120128 }
121129
@@ -128,12 +136,12 @@ public void simpleIntegerAsBytesPayload() {
128136 }
129137
130138 @ Test
131- public void objectPayload () throws Exception {
139+ public void objectPayload () {
132140 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
133141 TestAddress address = new TestAddress (123 , "Main Street" );
134142 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
135143 person .setAddress (address );
136- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
144+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
137145 assertTrue (result .contains ("\" firstName\" :\" John\" " ));
138146 assertTrue (result .contains ("\" lastName\" :\" Doe\" " ));
139147 assertTrue (result .contains ("\" age\" :42" ));
@@ -146,13 +154,13 @@ public void objectPayload() throws Exception {
146154 }
147155
148156 @ Test
149- public void objectPayloadWithCustomObjectMapper () throws Exception {
157+ public void objectPayloadWithCustomObjectMapper () {
150158 ObjectMapper customMapper = new ObjectMapper ();
151159 customMapper .configure (JsonGenerator .Feature .QUOTE_FIELD_NAMES , Boolean .FALSE );
152160 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new Jackson2JsonObjectMapper (customMapper ));
153161 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
154162 person .setAddress (new TestAddress (123 , "Main Street" ));
155- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
163+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
156164 assertTrue (result .contains ("firstName:\" John\" " ));
157165 assertTrue (result .contains ("lastName:\" Doe\" " ));
158166 assertTrue (result .contains ("age:42" ));
@@ -193,11 +201,11 @@ public void collectionOrMapWithNullFirstElement() {
193201 }
194202
195203 @ Test
196- public void testBoonJsonObjectMapper () throws Exception {
204+ public void testBoonJsonObjectMapper () {
197205 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new BoonJsonObjectMapper ());
198206 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
199207 person .setAddress (new TestAddress (123 , "Main Street" ));
200- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
208+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
201209 assertTrue (result .contains ("\" firstName\" :\" John\" " ));
202210 assertTrue (result .contains ("\" lastName\" :\" Doe\" " ));
203211 assertTrue (result .contains ("\" age\" :42" ));
@@ -210,12 +218,12 @@ public void testBoonJsonObjectMapper() throws Exception {
210218 }
211219
212220 @ Test
213- public void testBoonJsonObjectMapper_toNode () throws Exception {
221+ public void testBoonJsonObjectMapper_toNode () {
214222 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new BoonJsonObjectMapper (),
215223 ObjectToJsonTransformer .ResultType .NODE );
216224 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
217225 person .setAddress (new TestAddress (123 , "Main Street" ));
218- Object payload = transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
226+ Object payload = transformer .transform (new GenericMessage <>(person )).getPayload ();
219227 assertThat (payload , instanceOf (Map .class ));
220228
221229 SpelExpressionParser parser = new SpelExpressionParser ();
@@ -227,4 +235,19 @@ public void testBoonJsonObjectMapper_toNode() throws Exception {
227235 assertEquals ("John: Main Street" , value );
228236 }
229237
238+ @ Test
239+ public void testJsonStringAndJsonNode () {
240+ ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (ObjectToJsonTransformer .ResultType .NODE );
241+ Object result = transformer .transform (new GenericMessage <>("{\" foo\" : \" FOO\" , \" bar\" : 1}" )).getPayload ();
242+ assertThat (result , instanceOf (ObjectNode .class ));
243+ ObjectNode objectNode = (ObjectNode ) result ;
244+ assertEquals (2 , objectNode .size ());
245+ assertEquals ("FOO" , objectNode .path ("foo" ).textValue ());
246+ assertEquals (1 , objectNode .path ("bar" ).intValue ());
247+
248+ result = transformer .transform (new GenericMessage <>("foo" )).getPayload ();
249+ assertThat (result , instanceOf (TextNode .class ));
250+ assertEquals ("foo" , ((TextNode ) result ).textValue ());
251+ }
252+
230253}
0 commit comments