The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
188 lines
18 KiB
Plaintext
188 lines
18 KiB
Plaintext
Sub-scope 12 (inbound-web) testkit + webfluxContractTest + jettyCompatTest + nginxProxyTest
|
|
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
generatedAt=2026-08-30T07:46:41+00:00
|
|
|
|
=== OWNED FILES ===
|
|
cac69e5a01112ab3f652de4c245f5699e88977d4 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/JettyWebBudgetIT.java 30
|
|
366f2581b9f56b80840965b89049a4ec23fcb26c jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/contract/JettyContractRecordingIT.java 26
|
|
a2361a1e44f69a4045d9ed99d7333518a6d82587 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/fault/JettyCommitThenConnectionResetIT.java 28
|
|
65bc95581a55b3ac881ef1a2703c835aa5291b38 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/JettyWebContractIT.java 48
|
|
c6df351cf6301987eb10326333c900ff42a679e1 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/operation/JettyOperationHttpIT.java 27
|
|
75b9b6df0703efea778f03f8b9e1e69e12593712 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/JettyPipelineOrderIT.java 28
|
|
5e310429bed9a56e7c158c7ff2bf6c41653f8f97 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/performance/JettyLoadAndShutdownIT.java 63
|
|
a635453aabc5832810757c5d6625b85008e98d03 jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/JettyWebThrottleIT.java 41
|
|
e5fcde1a925be6e7a76bae96ad2179914e0e1b73 jettyCompatTest/resources/application-web-contract.yaml 19
|
|
7960ff4e0fea2655d84ef6cc6262816032e9f35c nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/NginxProxyContractIT.java 186
|
|
1c659d3b0a3845ecb7a90c5605d9c61fe50e18c9 nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/NginxProxyHarness.java 151
|
|
cc0a876b0334845831a9f006929e8ceb11541c4b nginxProxyTest/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/ProxyFixtureApplication.java 37
|
|
e03af04db93c53bf7b1e369e82698769940a2cce nginxProxyTest/resources/nginx/nginx.conf 45
|
|
8ade88cf28507e71c65dac2f2273cdfec29c1ebd nginxProxyTest/resources/nginx/proxy_headers.conf 22
|
|
47f89bf579dd2692128fe7744347d5252196b419 test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java 112
|
|
3e5d8011e2b64d6d8545aab66547a39099417070 test/java/dev/caskeleton/adapter/inbound/web/testkit/budget/TomcatWebBudgetIT.java 30
|
|
5a6c1ba6a85c5e40a3078ed84c85e704a3ccf8d5 test/java/dev/caskeleton/adapter/inbound/web/testkit/contract/CrossStackParityTest.java 138
|
|
625c96808664d42072c8d9c5fe9f4123ce8ee545 test/java/dev/caskeleton/adapter/inbound/web/testkit/contract/TomcatContractRecordingIT.java 26
|
|
5756805acaef954de30c42fea632301188f4385d test/java/dev/caskeleton/adapter/inbound/web/testkit/fault/CommitThenConnectionResetIT.java 27
|
|
bf1880db25bebd8f374281c7bf8627751b829b8f test/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/TomcatWebContractIT.java 44
|
|
39207a7677e807eb70ec69d3cee6e5f44bfb2ad5 test/java/dev/caskeleton/adapter/inbound/web/testkit/operation/TomcatOperationHttpIT.java 26
|
|
db3d28a86660a85176955f7b667c224721196641 test/java/dev/caskeleton/adapter/inbound/web/testkit/order/MvcPipelineOrderIT.java 27
|
|
e1fef5b5c50478649fe075c6cb5e352be88f8f53 test/java/dev/caskeleton/adapter/inbound/web/testkit/performance/TomcatLoadAndShutdownIT.java 63
|
|
3efaf4e3c673934a201d8ebca83545139246fe77 test/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/TomcatWebThrottleIT.java 41
|
|
b4cbea7fc739bfe2b45fe4b4304d38c3b7605589 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/ForbiddenClassAnnotationCondition.java 40
|
|
40e9aed2a3dd3f4cc815b8056127aa8618aaafaf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/ForbiddenMethodAnnotationCondition.java 40
|
|
13bd43997ebe3e428cdbbf83d88dc06747383678 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRules.java 238
|
|
bfc0b31cf5844c5fcb49305fec7a340599d30296 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebForbiddenTypeCatalog.java 78
|
|
bc8392f0fb0f1bfd8af4997afe438ce695a497d4 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/BudgetFixtureController.java 57
|
|
f21f41aea1aa5835d47909961b82cd684462f675 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/BudgetFixtureProtocol.java 52
|
|
76d53062ce9755c2dedf0ebc7e4b90efeec2d919 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/HttpBudgetFixture.java 151
|
|
386c505d98ffc0e8a0c03c21df8032d16d5b03bc testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveBudgetFixtureController.java 56
|
|
2077429a828ec735655f2acf06f862c5927043f3 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/budget/WebBudgetContract.java 135
|
|
855dda799871a1d6e1151d6f9a2a54b6303d1329 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebContractFixture.java 150
|
|
4e883946baead818ac019a4aea18a498d17d2678 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebPlatformContractRecording.java 71
|
|
44670f56b46bbb88c337c4d6479d063e95b32f3a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WebPlatformContractSuite.java 55
|
|
c922466ce06f020a2f1a63fd8fb7a9c9787f141a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WireOutcome.java 44
|
|
a80bd4892bfffb7631fd9b941c01bf9992c2f867 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/WireProbe.java 39
|
|
135d3f0d2ac959a7d4204c31eac0dd5bbb87c401 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureController.java 155
|
|
1f3d72f785a50846a949a78825753f1068d0abb5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureProtocol.java 39
|
|
6a9d8fbe0fe856bd1e62a4436f6c04f0ed05e055 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/FaultFixtureStore.java 67
|
|
69615aac5a75e7874483828a6ebfef694e0d2fc2 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/HttpResponseLossFixture.java 128
|
|
9b6c45086249a3b1fdd903ad3199b4dc3e3e5550 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/IdempotencyResponseLossContract.java 81
|
|
6b3b5296043c64b5dc01b650766ea92d6b66b37f testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ReactiveFaultFixtureController.java 153
|
|
95d08d19b99df55be14129000a1c055f82e81279 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ResponseLossFixture.java 46
|
|
84bdc97e2eca0d9d7f7fdb920e5b3922fa3843ad testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/WebFaultInjector.java 40
|
|
6641a9b68a77426ab80fcaa86bfce2ea3ec8ec71 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/fault/WebFaultPoint.java 39
|
|
e102a4c681354e85f5c5e2cf7ca4111f4d292b73 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/ContractFixtureController.java 60
|
|
84f47ef5bdec87ffa5abc40080e1dab6f4952fdf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/mvc/WebContractAssertions.java 149
|
|
519c6eb0d5ef30beade260b25b7bd942b230c536 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/HttpOperationFixture.java 114
|
|
0b5fcb173eb367a32aa4dac528fa546958283e29 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationFixtureController.java 84
|
|
c99dcdfa76162551f0745959b448721e98e21922 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationFixtureSupport.java 140
|
|
2e8295c54f4a924204bc6e16c25796342568436c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/OperationHttpContract.java 148
|
|
60982e5edaacef35aeb911a64430a3785d1a045d testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/ReactiveOperationFixtureController.java 92
|
|
05b86a427bf318d0478bc069c9b7dab77f982208 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/operation/TestDurableOperationStore.java 320
|
|
20507f10f57f69035c71da70896c83eb95be5f1c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/HttpPipelineFixture.java 83
|
|
6e5a9b8b65402b1a6654663ee9052e676b24fcdf testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/PipelineOrderFixtureController.java 90
|
|
4dbd4dd58ced6cc91067733b7f39c02564ee4028 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineOrderContract.java 155
|
|
7e93d5e5e39f89dc7b7cc4c18b6197d8dea0e50f testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineRecorder.java 46
|
|
7593b562a46c87305048ba0e21f6dd52563ef2e3 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebPipelineStage.java 60
|
|
b5d327d958238a2cf8ce3dd648294763162f32d5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/GracefulShutdownProbe.java 66
|
|
3e63e76986caff108d01e279e28157b5aad7ff62 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadAndShutdownContract.java 119
|
|
af49059110ab0b8a33b2f3723f92633094c50295 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadFixture.java 230
|
|
1f7657b532ae6c9259726718a76efc998229f1c5 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/performance/WebLoadResult.java 95
|
|
2a302238936dcdd568239f8abbdeebd8a740c92a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/proxy/ProxyFixtureController.java 101
|
|
0e28707d919a241b86ba80df881e65fe5f3b0d70 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/CountingRateLimiter.java 51
|
|
1dab476db140b9435be0bf30c4eae7c37e8f68ca testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/HttpThrottleFixture.java 172
|
|
f7ba0192cf8044ebc387c8ee1604396fd59f3922 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleControlController.java 61
|
|
beed0cce7fe17d8d94238130b382ab27f5d860bb testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureController.java 62
|
|
38d22a1911ba866dd1be784980a10964914dd8ff testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureProtocol.java 28
|
|
d46a1c8363ce0c3887e2c9092e0c56a30875a57a testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ThrottleFixtureSupport.java 75
|
|
4e74a1992c34cfbc13ad011e258ab37864345b06 testkit/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/WebThrottleHttpContract.java 122
|
|
5a5d402ccd3d1fb0546d246831d3ac884572ca3c testkit/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactiveContractFixtureController.java 73
|
|
cb369399b555863d9b32022b6cab730cea70b8a0 testkit/java/dev/caskeleton/webtestkit/BudgetFixtureApplication.java 72
|
|
11d949b868a31b1ef7aacfae68cf85501e6ee0ab testkit/java/dev/caskeleton/webtestkit/ContractFixtureApplication.java 74
|
|
ad8f6a08d87c8994d37b3b63b4d1b5168f6ea1e2 testkit/java/dev/caskeleton/webtestkit/PipelineOrderFixtureApplication.java 156
|
|
d6658e1e340d8fcb1dd336d61f7003ee43d0052d testkit/java/dev/caskeleton/webtestkit/ThrottleFixtureApplication.java 77
|
|
2a935728a0986be7a60378c00ed26867dee87165 testkit/resources/performance/web-load-profile.yaml 33
|
|
599a066ef96e73cff712c5e40a526c3f6f2d355f webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveBudgetFixtureApplication.java 44
|
|
4bfb455b5200848db14eb20ad1858ed74481b833 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/budget/ReactiveWebBudgetIT.java 29
|
|
b7c13ca25572fff133fd48f7d73936619d9971b2 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/contract/ReactiveContractRecordingIT.java 26
|
|
b7ec651a43e19595df51e71a487e68b1877fe53a webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/fault/ReactiveCommitThenConnectionResetIT.java 28
|
|
234ae235dfc863abe7aefa91e94428376968d2e4 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/operation/ReactiveOperationHttpIT.java 27
|
|
5d34c578e2a00b05c7de1b0d9c6487e4e9ca03ba webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/ReactivePipelineOrderFixtureApplication.java 93
|
|
914c6c98d2a5c0404793ce17597f413769612934 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/ReactivePipelineOrderFixtureController.java 87
|
|
cc94256d499f6e78defc238b2b57d3fa33da42c5 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/order/WebFluxPipelineOrderIT.java 27
|
|
7ba4fa6778b693ce766235cfad671e7b411f0541 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/performance/ReactorNettyLoadAndShutdownIT.java 68
|
|
7dc85dcc31ab463e7a7545ed51715a03ef92c4a9 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/streaming/ReactiveSseFixtureApplication.java 81
|
|
e1328f9da1d96d2d48bba21d774727c386528c82 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/streaming/WebFluxSseContractIT.java 120
|
|
c3eca519469e044e3600c889569312586436a982 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ReactiveThrottleFixtureApplication.java 62
|
|
62e7540114a2f2f643393f5f95b7fd981e473a94 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/throttle/ReactiveWebThrottleIT.java 42
|
|
7e557f58852c5e6b42445c761427b1fc81adee88 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactiveContractFixtureApplication.java 54
|
|
c2717c7d758813686d54183c5121e726a0cad668 webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/webflux/ReactorNettyWebContractIT.java 128
|
|
e5fcde1a925be6e7a76bae96ad2179914e0e1b73 webfluxContractTest/resources/application-web-contract.yaml 19
|
|
file_count=94
|
|
|
|
=== 8.1 픽스처 애플리케이션이 조립하는 플랫폼 타입 ===
|
|
BudgetFixtureApplication BudgetProblemMapper WebMvcBudgetFilter
|
|
ContractFixtureApplication WebProblemFactory
|
|
PipelineOrderFixtureApplication HandlerInterceptor OncePerRequestFilter WebPipelineRecorder
|
|
ThrottleFixtureApplication CountingRateLimiter ThrottleProblemWriter WebMvcThrottleFilter
|
|
ReactiveBudgetFixtureApplication BudgetProblemMapper WebFluxBudgetFilter
|
|
ReactivePipelineOrderFixtureApplicationWebPipelineRecorder
|
|
ReactiveSseFixtureApplication StreamId StreamSequence WebFluxSseAdapter WebStreamPolicy
|
|
ReactiveThrottleFixtureApplication CountingRateLimiter ThrottleProblemWriter WebFluxThrottleFilter
|
|
ReactiveContractFixtureApplication WebProblemFactory WebProblemSanitizer
|
|
|
|
=== 8.2 계약 클래스와 세 레인 ===
|
|
$ ls adapter/inbound/web/src/testkit/java/dev/caskeleton/adapter/inbound/web/testkit/*/ | grep -i contract
|
|
WebBudgetContract.java
|
|
adapter/inbound/web/src/testkit/java/dev/caskeleton/adapter/inbound/web/testkit/contract/:
|
|
WebContractFixture.java
|
|
WebPlatformContractRecording.java
|
|
WebPlatformContractSuite.java
|
|
IdempotencyResponseLossContract.java
|
|
ContractFixtureController.java
|
|
WebContractAssertions.java
|
|
OperationHttpContract.java
|
|
WebPipelineOrderContract.java
|
|
WebLoadAndShutdownContract.java
|
|
WebThrottleHttpContract.java
|
|
ReactiveContractFixtureController.java
|
|
exit=0
|
|
|
|
$ ls adapter/inbound/web/src/jettyCompatTest/java/dev/caskeleton/adapter/inbound/web/testkit/*/ adapter/inbound/web/src/webfluxContractTest/java/dev/caskeleton/adapter/inbound/web/testkit/*/ 2>/dev/null | grep IT.java
|
|
JettyWebBudgetIT.java
|
|
JettyContractRecordingIT.java
|
|
JettyCommitThenConnectionResetIT.java
|
|
JettyWebContractIT.java
|
|
JettyOperationHttpIT.java
|
|
JettyPipelineOrderIT.java
|
|
JettyLoadAndShutdownIT.java
|
|
JettyWebThrottleIT.java
|
|
ReactiveWebBudgetIT.java
|
|
ReactiveContractRecordingIT.java
|
|
ReactiveCommitThenConnectionResetIT.java
|
|
ReactiveOperationHttpIT.java
|
|
WebFluxPipelineOrderIT.java
|
|
ReactorNettyLoadAndShutdownIT.java
|
|
WebFluxSseContractIT.java
|
|
ReactiveWebThrottleIT.java
|
|
ReactorNettyWebContractIT.java
|
|
exit=0
|
|
|
|
$ grep -n 'dependsOn' adapter/inbound/web/build.gradle
|
|
195: dependsOn 'test', 'webJettyCompatTest', 'webFluxContractTest'
|
|
257: dependsOn tasks.named('webSecurityBoundaryTest')
|
|
exit=0
|
|
|
|
=== 8.3/8.4 ArchUnit 규칙 팩의 소비자와 개수 고정 ===
|
|
$ grep -rn 'WebArchitectureRules' --include=*.java . | grep -v 'testkit/arch/WebArchitectureRules.java' | sed 's|adapter/inbound/web/src/||;s|app-bootstrap/src/|BOOT:|'
|
|
./BOOT:test/java/dev/caskeleton/bootstrap/architecture/WebProductionArchitectureTest.java:8:import dev.caskeleton.adapter.inbound.web.testkit.arch.WebArchitectureRules;
|
|
./BOOT:test/java/dev/caskeleton/bootstrap/architecture/WebProductionArchitectureTest.java:47: for (var rule : WebArchitectureRules.all()) {
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:18:class WebArchitectureRulesTest {
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:33: () -> WebArchitectureRules.controllersAreUseCaseAdapters().check(BAD_CONTROLLER))
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:76: for (var rule : WebArchitectureRules.webScopedRules()) {
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:86: assertThat(WebArchitectureRules.all()).hasSize(7);
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:87: assertThat(WebArchitectureRules.webScopedRules()).hasSize(6);
|
|
./test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java:88: assertThat(WebArchitectureRules.crossLeafRules())
|
|
exit=0
|
|
|
|
$ grep -n 'hasSize' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/testkit/arch/WebArchitectureRulesTest.java
|
|
86: assertThat(WebArchitectureRules.all()).hasSize(7);
|
|
87: assertThat(WebArchitectureRules.webScopedRules()).hasSize(6);
|
|
90: .hasSize(1);
|
|
exit=0
|
|
|
|
=== 8.4b 자동설정이 세운 컨텍스트를 확인하는 테스트가 있는가 ===
|
|
$ grep -c 'WebMvcBudgetFilter\|WebMvcThrottleFilter\|WebIdempotencyGate' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/mvc/autoconfigure/WebMvcPlatformAutoConfigurationTest.java
|
|
0
|
|
exit=1
|
|
|
|
$ grep -n 'void ' adapter/inbound/web/src/test/java/dev/caskeleton/adapter/inbound/web/mvc/autoconfigure/WebMvcPlatformAutoConfigurationTest.java
|
|
32: void aServletApplicationGetsThePlatformBeans() {
|
|
48: void theStandardBudgetProfileIsRegistered() {
|
|
60: void aReactiveApplicationGetsNoneOfTheServletWiring() {
|
|
72: void aNonWebApplicationGetsNoneOfItEither() {
|
|
80: void theMasterSwitchTurnsEverythingOff() {
|
|
93: void theRequestIdIsNotTrustedByDefault() {
|
|
103: void anAdopterBeanReplacesThePlatformDefault() {
|
|
exit=0
|
|
|