# MockMvc against CustomerController: records in, records out, Jackson 3 in the middle JSON library bean : tools.jackson.databind.json.JsonMapper --- GET /customers/1 --- {"id":1,"fullName":"Asha Mehta","email":"Asha.Mehta@Example.com","birthDate":"1990-06-15","age":36,"nickname":"anonymous","address":{"street":"12 Park Road","city":"Pune","zip":"411001","country":"IN"},"roles":["USER"],"attributes":{"newsletter":"yes"},"orders":[{"id":100,"status":"PAID","placedAt":"2026-02-01T10:00:00Z","lines":[{"sku":"BOOK-1","quantity":2,"unitPrice":12.50,"lineTotal":25.00},{"sku":"PEN-9","quantity":10,"unitPrice":0.75,"lineTotal":7.50}],"total":32.50}],"origin":"api"} --- POST /customers (no nickname, no tier, no country) --- {"id":2,"fullName":"Ravi Iyer","email":"ravi.iyer@example.com","birthDate":"1985-01-02","age":41,"nickname":"anonymous","address":{"street":"1 Lake View","city":"Chennai","zip":"600001","country":"IN"},"roles":["ADMIN"],"attributes":{},"orders":null,"origin":"api"} --- PATCH /customers/1 {"nickname":"ash"} (every other component of the patch record is null) --- {"id":1,"fullName":"Asha Mehta","email":"Asha.Mehta@Example.com","birthDate":"1990-06-15","age":36,"nickname":"ash","address":{"street":"12 Park Road","city":"Pune","zip":"411001","country":"IN"},"roles":["USER"],"attributes":{"newsletter":"yes"},"orders":[{"id":100,"status":"PAID","placedAt":"2026-02-01T10:00:00Z","lines":[{"sku":"BOOK-1","quantity":2,"unitPrice":12.50,"lineTotal":25.00},{"sku":"PEN-9","quantity":10,"unitPrice":0.75,"lineTotal":7.50}],"total":32.50}],"origin":"api"} --- GET /customers/99 --- status 404