# 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
