title: Configure deserialize Json in RestAssured
body: <p>I use restAssured to test rest service in our applications. The application receive a Json format. Before call the rest service, RestAssured must deserialize a field (ENUM) of bean class with toString method to achieve the response. 
  Follow the code:</p>
  
  <pre><code>public enum Condition {
  
      SUCCESS("success"), 
      FAILURE("failure");
  
      private String condition;
  
      private Condition(String condition) {
          this.condition = condition;
      }
  
      @Override
      public String toString() {
          return this.condition;
      }
  }
  
  
  public class Order {    
      private String order_id;
      private Condition status;
  
      //Getters and Setters
  }
  
  
  import static com.jayway.restassured.RestAssured.given;
  import static com.jayway.restassured.RestAssured.preemptive;
  import static org.assertj.core.api.Assertions.assertThat;
  import static com.jayway.restassured.config.RestAssuredConfig.config;
  import static com.jayway.restassured.config.ObjectMapperConfig.objectMapperConfig; 
  
  public class RestTests {    
  
      //.....//
  
      private static RequestSpecification spec;
      public static final Order inputOrderInvalid = 
              new Order.Builder()
              .setOrderId("213424")
              .setCondition(Condition.SUCCESS)        
              .build();
  
  
      @BeforeClass
      public static void initSpec(){
  
          ObjectMapper objectMapper = new ObjectMapper();
          objectMapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);        
          objectMapper.configure(DeserializationFeature.FAIL_ON_NUMBERS_FOR_ENUMS, false);
  
          RestAssuredConfig config = config().objectMapperConfig(objectMapperConfig().jackson2ObjectMapperFactory((cls, charset) -&gt; objectMapper));
  
  
          spec = new RequestSpecBuilder()
                  .setConfig(config)
                  .setContentType(ContentType.JSON)                               
                  .setBaseUri(ENDPOINT_URI)
                  .addFilter(new ResponseLoggingFilter())//log request and response for better debugging. You can also only log if a requests fails.
                  .addFilter(new RequestLoggingFilter())
                  .build();
      }
  
  
          @Test
      public void orderInvalid(){
          JsonPath error = given()
              .spec(spec)
              .body(inputOrderInvalid)            
              .when()
              .post(SERVICE)
              .then()
              .statusCode(HttpStatus.SC_BAD_REQUEST)
              .extract()
              .jsonPath();
  
          assertThat(error.getString("code")).isEqualTo("INCORRECT_VALUE");
      }
      //.....//
  }
  </code></pre>
  
  <p>The restAssured only send the requestBody:</p>
  
  <pre><code>{
    "order_id" : "12312546",
    "condition" : "SUCCESS"
  } 
  </code></pre>
  
  <p>It seems the configuration setted in ObjectMapper has been ignored. (DeserializationFeature.READ_ENUMS_USING_TO_STRING).</p>
  
  <p>Anyone could help me?</p>