The route calls .marshal().json() before reaching the mock endpoint, so the body is a JSON String, not a POJO. Removed expectedBodiesReceived with POJO and getBody(BusinessRulesPayload.class), replaced with String body assertion using contains().