diff --git a/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy b/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy index 8cb84a57dc..86a7bd47de 100644 --- a/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy +++ b/accurest-core/src/main/groovy/io/codearte/accurest/SingleTestGenerator.groovy @@ -1,6 +1,7 @@ package io.codearte.accurest import groovy.transform.Canonical +import groovy.transform.EqualsAndHashCode import groovy.transform.PackageScope import groovy.util.logging.Slf4j import io.codearte.accurest.builder.ClassBuilder @@ -99,6 +100,7 @@ class SingleTestGenerator { } @Canonical + @EqualsAndHashCode private static class ParsedDsl { Contract contract GroovyDsl groovyDsl @@ -124,10 +126,10 @@ class SingleTestGenerator { private ClassBuilder addMessagingRelatedEntries(ClassBuilder clazz) { clazz.addField(['@Inject AccurestMessaging accurestMessaging', - 'ObjectMapper accurestObjectMapper = new ObjectMapper()' + 'AccurestObjectMapper accurestObjectMapper = new AccurestObjectMapper()' ]) clazz.addImport([ 'javax.inject.Inject', - 'com.fasterxml.jackson.databind.ObjectMapper', + 'io.codearte.accurest.messaging.AccurestObjectMapper', 'io.codearte.accurest.messaging.AccurestMessage', 'io.codearte.accurest.messaging.AccurestMessaging', ]) diff --git a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MessagingMethodBodyBuilderSpec.groovy b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MessagingMethodBodyBuilderSpec.groovy index 9e74ebed24..192c1036e5 100644 --- a/accurest-core/src/test/groovy/io/codearte/accurest/builder/MessagingMethodBodyBuilderSpec.groovy +++ b/accurest-core/src/test/groovy/io/codearte/accurest/builder/MessagingMethodBodyBuilderSpec.groovy @@ -86,7 +86,7 @@ and: } private String stripped(String text) { - return text.stripIndent().stripMargin().replace('\t', '').replace('\n', '') + return text.stripIndent().stripMargin().replace(' ', '').replace('\n', '') } def "should generate tests triggered by a message for Spock"() { @@ -309,9 +309,9 @@ then: ''' // given: AccurestMessage inputMessage = accurestMessaging.create( -\t\t\t"{\\"bookName\\":\\"foo\\"}" -\t\t, headers() -\t\t\t.header("sample", "header")); + "{\\"bookName\\":\\"foo\\"}" + , headers() + .header("sample", "header")); // when: accurestMessaging.send(inputMessage, "jms:input"); diff --git a/accurest-messaging/accurest-messaging-core/src/main/java/io/codearte/accurest/messaging/AccurestObjectMapper.java b/accurest-messaging/accurest-messaging-core/src/main/java/io/codearte/accurest/messaging/AccurestObjectMapper.java new file mode 100644 index 0000000000..39740539ad --- /dev/null +++ b/accurest-messaging/accurest-messaging-core/src/main/java/io/codearte/accurest/messaging/AccurestObjectMapper.java @@ -0,0 +1,30 @@ +package io.codearte.accurest.messaging; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +/** + * Wrapper over {@link ObjectMapper} that won't try to parse + * String but will directly return it. + * + * @author Marcin Grzejszczak + */ +public class AccurestObjectMapper { + + private final ObjectMapper objectMapper; + + public AccurestObjectMapper(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + + public AccurestObjectMapper() { + this.objectMapper = new ObjectMapper(); + } + + public String writeValueAsString(Object payload) throws JsonProcessingException { + if (payload instanceof String) { + return payload.toString(); + } + return objectMapper.writeValueAsString(payload); + } +}