public class AnonymizeImisMembersTransformer extends ResponseTransformer {
private static final Logger LOG = LoggerFactory.getLogger(AnonymizeImisMembersTransformer.class);
/**
* Name of this transformer.
*/
public static final String ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME = "anonymize-imis-members-transformer";
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files) {
ResponseDefinition transformedResponseDefinition = responseDefinition;
LOG.debug("## response definition body: {}", responseDefinition.getBody());
// if response body is empty simply return existing response definition
if (null != responseDefinition.getBody()) {
transformedResponseDefinition = ResponseDefinitionBuilder
.like(responseDefinition).but()
.withBody(responseDefinition.getBody().replace("some...@mail.com", "someoth...@mail.com"))
.build();
}
return transformedResponseDefinition;
}
@Override
public String name() {
return ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME;
}
@Override
public boolean applyGlobally() {
return true;
}
}@Rule
public WireMockRule wireMockServer = new WireMockRule(wireMockConfig()
.port(WIREMOCK_SERVER_TEST_PORT)
.withRootDirectory(WIREMOCK_STUBS_FOLDER)
.extensions(AnonymizeImisMembersTransformer.class)
.recordRequestHeadersForMatching(Collections.<String>emptyList()));Hi,I am trying to use a WireMock response transformer because I want to anonymize certain WireMock stub data before serving it but in my response transformer the response body is always null and I do not quite understand why. Am I doing something wrong?My response transformer Java class is very similar to the example of the documentation:
public class AnonymizeImisMembersTransformer extends ResponseTransformer {
private static final Logger LOG = LoggerFactory.getLogger(AnonymizeImisMembersTransformer.class);
/**
* Name of this transformer.
*/
public static final String ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME = "anonymize-imis-members-transformer";
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files) {
ResponseDefinition transformedResponseDefinition = responseDefinition;
LOG.debug("## response definition body: {}", responseDefinition.getBody());
// if response body is empty simply return existing response definition
if (null != responseDefinition.getBody()) {
transformedResponseDefinition = ResponseDefinitionBuilder
.like(responseDefinition).but()
.build();
}
return transformedResponseDefinition;
}
@Override
public String name() {
return ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME;
}
@Override
public boolean applyGlobally() {
return true;
}
}
I can't see anything wrong with that. Is the body of the original ResponseDefinition null, or just the one resulting from the transformation?
On Monday, 11 May 2015 09:03:13 UTC+1, ed...@info.nl wrote:
Hi,I am trying to use a WireMock response transformer because I want to anonymize certain WireMock stub data before serving it but in my response transformer the response body is always null and I do not quite understand why. Am I doing something wrong?My response transformer Java class is very similar to the example of the documentation:
public class AnonymizeImisMembersTransformer extends ResponseTransformer {
private static final Logger LOG = LoggerFactory.getLogger(AnonymizeImisMembersTransformer.class);
/**
* Name of this transformer.
*/
public static final String ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME = "anonymize-imis-members-transformer";
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files) {
ResponseDefinition transformedResponseDefinition = responseDefinition;
LOG.debug("## response definition body: {}", responseDefinition.getBody());
// if response body is empty simply return existing response definition
if (null != responseDefinition.getBody()) {
transformedResponseDefinition = ResponseDefinitionBuilder
.like(responseDefinition).but()
.build();
}
return transformedResponseDefinition;
}
@Override
public String name() {
return ANONYMIZE_IMIS_MEMBERS_TRANSFORMER_NAME;
}
@Override
public boolean applyGlobally() {
return true;
}
}