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
5759public class ObjectToJsonTransformerTests {
5860
5961 @ Test
60- public void simpleStringPayload () throws Exception {
62+ public void simpleStringPayload () {
6163 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
62- String result = (String ) transformer .transform (new GenericMessage <String >("foo" )).getPayload ();
64+ String result = (String ) transformer .transform (new GenericMessage <>("foo" )).getPayload ();
6365 assertEquals ("\" foo\" " , result );
6466 }
6567
6668 @ Test
67- public void withDefaultContentType () throws Exception {
69+ public void withDefaultContentType () {
6870 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
69- Message <?> result = transformer .transform (new GenericMessage <String >("foo" ));
71+ Message <?> result = transformer .transform (new GenericMessage <>("foo" ));
7072 assertEquals (ObjectToJsonTransformer .JSON_CONTENT_TYPE , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
7173 }
7274
7375 @ Test
74- public void withProvidedContentType () throws Exception {
76+ public void withProvidedContentType () {
7577 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
76- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
78+ Message <?> message = MessageBuilder .withPayload ("foo" )
79+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
80+ .build ();
7781 Message <?> result = transformer .transform (message );
7882 assertEquals ("text/xml" , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
7983 }
8084
8185 @ Test
82- public void withProvidedContentTypeWithOverride () throws Exception {
86+ public void withProvidedContentTypeWithOverride () {
8387 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
8488 transformer .setContentType (ObjectToJsonTransformer .JSON_CONTENT_TYPE );
85- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
89+ Message <?> message = MessageBuilder .withPayload ("foo" )
90+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
91+ .build ();
8692 Message <?> result = transformer .transform (message );
8793 assertEquals (ObjectToJsonTransformer .JSON_CONTENT_TYPE , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
8894 }
8995
9096 @ Test
91- public void withProvidedContentTypeAsEmptyString () throws Exception {
97+ public void withProvidedContentTypeAsEmptyString () {
9298 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
9399 transformer .setContentType ("" );
94100 Message <?> message = MessageBuilder .withPayload ("foo" ).build ();
@@ -97,34 +103,36 @@ public void withProvidedContentTypeAsEmptyString() throws Exception {
97103 }
98104
99105 @ Test
100- public void withProvidedContentTypeAsEmptyStringDoesNotOverride () throws Exception {
106+ public void withProvidedContentTypeAsEmptyStringDoesNotOverride () {
101107 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
102108 transformer .setContentType ("" );
103- Message <?> message = MessageBuilder .withPayload ("foo" ).setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" ).build ();
109+ Message <?> message = MessageBuilder .withPayload ("foo" )
110+ .setHeader (MessageHeaders .CONTENT_TYPE , "text/xml" )
111+ .build ();
104112 Message <?> result = transformer .transform (message );
105113 assertEquals ("text/xml" , result .getHeaders ().get (MessageHeaders .CONTENT_TYPE ));
106114 }
107115
108116 @ Test (expected = IllegalArgumentException .class )
109- public void withProvidedContentTypeAsNull () throws Exception {
117+ public void withProvidedContentTypeAsNull () {
110118 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
111119 transformer .setContentType (null );
112120 }
113121
114122 @ Test
115- public void simpleIntegerPayload () throws Exception {
123+ public void simpleIntegerPayload () {
116124 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
117- String result = (String ) transformer .transform (new GenericMessage <Integer >(123 )).getPayload ();
125+ String result = (String ) transformer .transform (new GenericMessage <>(123 )).getPayload ();
118126 assertEquals ("123" , result );
119127 }
120128
121129 @ Test
122- public void objectPayload () throws Exception {
130+ public void objectPayload () {
123131 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer ();
124132 TestAddress address = new TestAddress (123 , "Main Street" );
125133 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
126134 person .setAddress (address );
127- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
135+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
128136 assertTrue (result .contains ("\" firstName\" :\" John\" " ));
129137 assertTrue (result .contains ("\" lastName\" :\" Doe\" " ));
130138 assertTrue (result .contains ("\" age\" :42" ));
@@ -137,13 +145,13 @@ public void objectPayload() throws Exception {
137145 }
138146
139147 @ Test
140- public void objectPayloadWithCustomObjectMapper () throws Exception {
148+ public void objectPayloadWithCustomObjectMapper () {
141149 ObjectMapper customMapper = new ObjectMapper ();
142150 customMapper .configure (JsonGenerator .Feature .QUOTE_FIELD_NAMES , Boolean .FALSE );
143151 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new Jackson2JsonObjectMapper (customMapper ));
144152 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
145153 person .setAddress (new TestAddress (123 , "Main Street" ));
146- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
154+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
147155 assertTrue (result .contains ("firstName:\" John\" " ));
148156 assertTrue (result .contains ("lastName:\" Doe\" " ));
149157 assertTrue (result .contains ("age:42" ));
@@ -184,11 +192,11 @@ public void collectionOrMapWithNullFirstElement() {
184192 }
185193
186194 @ Test
187- public void testBoonJsonObjectMapper () throws Exception {
195+ public void testBoonJsonObjectMapper () {
188196 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new BoonJsonObjectMapper ());
189197 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
190198 person .setAddress (new TestAddress (123 , "Main Street" ));
191- String result = (String ) transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
199+ String result = (String ) transformer .transform (new GenericMessage <>(person )).getPayload ();
192200 assertTrue (result .contains ("\" firstName\" :\" John\" " ));
193201 assertTrue (result .contains ("\" lastName\" :\" Doe\" " ));
194202 assertTrue (result .contains ("\" age\" :42" ));
@@ -201,12 +209,12 @@ public void testBoonJsonObjectMapper() throws Exception {
201209 }
202210
203211 @ Test
204- public void testBoonJsonObjectMapper_toNode () throws Exception {
212+ public void testBoonJsonObjectMapper_toNode () {
205213 ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (new BoonJsonObjectMapper (),
206214 ObjectToJsonTransformer .ResultType .NODE );
207215 TestPerson person = new TestPerson ("John" , "Doe" , 42 );
208216 person .setAddress (new TestAddress (123 , "Main Street" ));
209- Object payload = transformer .transform (new GenericMessage <TestPerson >(person )).getPayload ();
217+ Object payload = transformer .transform (new GenericMessage <>(person )).getPayload ();
210218 assertThat (payload , instanceOf (Map .class ));
211219
212220 SpelExpressionParser parser = new SpelExpressionParser ();
@@ -218,4 +226,19 @@ public void testBoonJsonObjectMapper_toNode() throws Exception {
218226 assertEquals ("John: Main Street" , value );
219227 }
220228
229+ @ Test
230+ public void testJsonStringAndJsonNode () {
231+ ObjectToJsonTransformer transformer = new ObjectToJsonTransformer (ObjectToJsonTransformer .ResultType .NODE );
232+ Object result = transformer .transform (new GenericMessage <>("{\" foo\" : \" FOO\" , \" bar\" : 1}" )).getPayload ();
233+ assertThat (result , instanceOf (ObjectNode .class ));
234+ ObjectNode objectNode = (ObjectNode ) result ;
235+ assertEquals (2 , objectNode .size ());
236+ assertEquals ("FOO" , objectNode .path ("foo" ).textValue ());
237+ assertEquals (1 , objectNode .path ("bar" ).intValue ());
238+
239+ result = transformer .transform (new GenericMessage <>("foo" )).getPayload ();
240+ assertThat (result , instanceOf (TextNode .class ));
241+ assertEquals ("foo" , ((TextNode ) result ).textValue ());
242+ }
243+
221244}
0 commit comments