I am trying to test a method that posts an object to the database using Spring's MockMVC framework. I've constructed the test as follows:
@Test
public void testInsertObject() throws Exception { 
    String url = BASE_URL + "/object";
    ObjectBean anObject = new ObjectBean();
    anObject.setObjectId("33");
    anObject.setUserId("4268321");
    //... more
    Gson gson = new Gson();
    String json = gson.toJson(anObject);
    MvcResult result = this.mockMvc.perform(
            post(url)
            .contentType(MediaType.APPLICATION_JSON)
            .content(json))
            .andExpect(status().isOk())
            .andReturn();
}
The method I'm testing uses Spring's @RequestBody to receive the ObjectBean, but the test always returns a 400 error.
@ResponseBody
@RequestMapping(    consumes="application/json",
                    produces="application/json",
                    method=RequestMethod.POST,
                    value="/object")
public ObjectResponse insertObject(@RequestBody ObjectBean bean){
    this.photonetService.insertObject(bean);
    ObjectResponse response = new ObjectResponse();
    response.setObject(bean);
    return response;
}
The json created by gson in the test:
{
   "objectId":"33",
   "userId":"4268321",
   //... many more
}
The ObjectBean class
public class ObjectBean {
private String objectId;
private String userId;
//... many more
public String getObjectId() {
    return objectId;
}
public void setObjectId(String objectId) {
    this.objectId = objectId;
}
public String getUserId() {
    return userId;
}
public void setUserId(String userId) {
    this.userId = userId;
}
//... many more
}
So my question is: how to I test this method using Spring MockMVC?
 
     
     
     
     
     
    