@Test
public void testRouter3() throws Exception {

    Person person = new Person();
    person.name = "bar";
    person.age = 10;
    ComplexData body = new ComplexData();
    body.setPerson(person);
    Person addedPerson = new Person();
    addedPerson.name = person.name.toUpperCase();
    addedPerson.age = person.age + 10;
    AwsProxyRequest req = new AwsProxyRequestBuilder(requestJsonStream)
            .resourcePath("/test_action3")
            .httpMethod("POST")
            .body(body)
            .build();
    AwsProxyResponse res = router.apply(req, mockContext);
    assertEquals(200, res.getStatusCode());
    assertThat(res.getHeaders(), hasEntry(CONTENT_TYPE, APPLICATION_JSON));
    ComplexData actual = JsonUtils.readValue(res.getBody(), ComplexData.class);
    assertThat(actual.persons, contains(person, addedPerson));
    assertFalse(res.isBase64Encoded());
}