{
 "type": "excalidraw",
 "version": 2,
 "source": "https://excalidraw.com",
 "elements": [
  {
   "id": "r789109706",
   "type": "rectangle",
   "x": 320,
   "y": 120,
   "width": 560,
   "height": 150,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 299204439,
   "versionNonce": 730554230,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t531230083",
   "type": "text",
   "x": 330,
   "y": 128,
   "width": 154.0,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1513957035,
   "versionNonce": 1708066747,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Tier 3 \u2014 Integration",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Tier 3 \u2014 Integration",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t149807441",
   "type": "text",
   "x": 330,
   "y": 148,
   "width": 308.55,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 762977205,
   "versionNonce": 332217415,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "3 classes \u2014 2 repository ITs + SixContextsSmokeTest",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "3 classes \u2014 2 repository ITs + SixContextsSmokeTest",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1858940400",
   "type": "text",
   "x": 330,
   "y": 163,
   "width": 344.85,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 83310937,
   "versionNonce": 371457661,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "real Postgres via Testcontainers, real Hibernate + Flyway",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "real Postgres via Testcontainers, real Hibernate + Flyway",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t249821382",
   "type": "text",
   "x": 330,
   "y": 178,
   "width": 356.95000000000005,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1787394896,
   "versionNonce": 280762390,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "proves: works against a real Postgres \u2014 slow, few by design",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "proves: works against a real Postgres \u2014 slow, few by design",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r1928644672",
   "type": "rectangle",
   "x": 220,
   "y": 310,
   "width": 760,
   "height": 150,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 867982370,
   "versionNonce": 832976514,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t1720266418",
   "type": "text",
   "x": 230,
   "y": 318,
   "width": 215.60000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 503569517,
   "versionNonce": 1799113548,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Tier 2 \u2014 Slice (@WebMvcTest)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Tier 2 \u2014 Slice (@WebMvcTest)",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t618651198",
   "type": "text",
   "x": 230,
   "y": 338,
   "width": 320.65000000000003,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 818968168,
   "versionNonce": 1274222273,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "6 classes \u2014 one @WebMvcTest slice per REST controller",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "6 classes \u2014 one @WebMvcTest slice per REST controller",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1248290648",
   "type": "text",
   "x": 230,
   "y": 353,
   "width": 302.5,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1814093502,
   "versionNonce": 237376601,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "service layer mocked, only the web MVC stack boots",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "service layer mocked, only the web MVC stack boots",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1398004166",
   "type": "text",
   "x": 230,
   "y": 368,
   "width": 411.40000000000003,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1649117127,
   "versionNonce": 1217647719,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "proves: does this controller bind, validate, and serialize correctly",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "proves: does this controller bind, validate, and serialize correctly",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r1589705729",
   "type": "rectangle",
   "x": 110,
   "y": 500,
   "width": 980,
   "height": 150,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 899546179,
   "versionNonce": 1194432650,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t264990228",
   "type": "text",
   "x": 120,
   "y": 508,
   "width": 177.10000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1518938536,
   "versionNonce": 1794939228,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Tier 1 \u2014 Unit (Mockito)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Tier 1 \u2014 Unit (Mockito)",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t1319304008",
   "type": "text",
   "x": 120,
   "y": 528,
   "width": 538.45,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 162497352,
   "versionNonce": 1052428033,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "4 classes \u2014 InventoryServiceTest, OrderServiceTest, PaymentServiceTest, ReviewServiceTest",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "4 classes \u2014 InventoryServiceTest, OrderServiceTest, PaymentServiceTest, ReviewServiceTest",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1298737748",
   "type": "text",
   "x": 120,
   "y": 543,
   "width": 423.50000000000006,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1788107301,
   "versionNonce": 969114616,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "no Spring context, no database, no network \u2014 every collaborator mocked",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "no Spring context, no database, no network \u2014 every collaborator mocked",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t219816309",
   "type": "text",
   "x": 120,
   "y": 558,
   "width": 326.70000000000005,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1797254481,
   "versionNonce": 466697856,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "proves: does this one class's logic do the right thing",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "proves: does this one class's logic do the right thing",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "a455485925",
   "type": "arrow",
   "x": 600.0,
   "y": 270.0,
   "width": 0.0,
   "height": 40.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 10897982,
   "versionNonce": 1390144336,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     40.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "a179614303",
   "type": "arrow",
   "x": 600.0,
   "y": 460.0,
   "width": 0.0,
   "height": 40.0,
   "angle": 0,
   "strokeColor": "#2f5f3d",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 775041291,
   "versionNonce": 581493643,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     40.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "t845380717",
   "type": "text",
   "x": 600.0,
   "y": 466.0,
   "width": 278.3,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#2f5f3d",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1197324261,
   "versionNonce": 886406255,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "one `mvn verify` run exercises all three tiers",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "one `mvn verify` run exercises all three tiers",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1927517698",
   "type": "text",
   "x": 600.0,
   "y": 22,
   "width": 617.1,
   "height": 21.25,
   "angle": 0,
   "strokeColor": "#1d1d1d",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1725738547,
   "versionNonce": 830159490,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ch.10 \u2014 the monolith's test pyramid: three tiers, one `mvn verify`",
   "fontSize": 17,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "ch.10 \u2014 the monolith's test pyramid: three tiers, one `mvn verify`",
   "lineHeight": 1.25,
   "baseline": 17
  },
  {
   "id": "t568914415",
   "type": "text",
   "x": 600.0,
   "y": 46,
   "width": 686.4000000000001,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1712329438,
   "versionNonce": 1072056826,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "13 test classes, 41 @Test methods + 1 parameterized test (4 executions) = 45 executions, every one green",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "13 test classes, 41 @Test methods + 1 parameterized test (4 executions) = 45 executions, every one green",
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "t834330421",
   "type": "text",
   "x": 110,
   "y": 738,
   "width": 544.5,
   "height": 12.5,
   "angle": 0,
   "strokeColor": "#777777",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1634279908,
   "versionNonce": 78989722,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Sourced from _docs/10-testing-the-monolith.md (\"Three tiers, one mvn verify\"; Tier 1/2/3 sections).",
   "fontSize": 10,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Sourced from _docs/10-testing-the-monolith.md (\"Three tiers, one mvn verify\"; Tier 1/2/3 sections).",
   "lineHeight": 1.25,
   "baseline": 10
  },
  {
   "id": "t1826940213",
   "type": "text",
   "x": 110,
   "y": 754,
   "width": 566.5,
   "height": 12.5,
   "angle": 0,
   "strokeColor": "#777777",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 18693700,
   "versionNonce": 1921261895,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Class and method counts quoted verbatim from the chapter; tests live in examples/00-monolith/src/test/.",
   "fontSize": 10,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Class and method counts quoted verbatim from the chapter; tests live in examples/00-monolith/src/test/.",
   "lineHeight": 1.25,
   "baseline": 10
  }
 ],
 "appState": {
  "viewBackgroundColor": "#ffffff",
  "gridSize": null
 },
 "files": {}
}