correct platform verification evidence

This commit is contained in:
sechmachine
2026-08-15 02:50:27 +07:00
parent 8ff6ee3d87
commit 98688dec7e
15 changed files with 418 additions and 28 deletions
@@ -2,9 +2,9 @@
- **Test type:** Unit
- **Requirement IDs:** `ARC-001ARC-008`
- **Scenario IDs:** `AC-ARC-001`
- **Scenario IDs:** No direct acceptance-scenario mapping (architecture regression)
- **Test class/method:** `com.lab.labtimesheet.config.LayerStructureTest.applicationUsesOnlyApprovedPackageByFeatureStructure`
- **Implementation commit:** `this milestone commit`
- **Implementation commit:** `1235204bf1298599264a07943ca1167432556bd2`
## Protected behavior
@@ -0,0 +1,79 @@
# Test Evidence: Platform production API Javadocs
- **Test type:** Unit (documentation/static verification)
- **Requirement IDs:** Repository Javadoc implementation standard; Iteration 1 retrofit exception
- **Scenario IDs:** No runtime acceptance-scenario mapping
- **Test class/method:** Maven Javadoc Plugin 3.12.0 over Platform production sources
- **Implementation commit:** `8ff6ee3d873db909b1ce9df690f7a3abb2c3c79d`
## Protected behavior
Platform-owned production types and declared public/protected non-trivial APIs under the root application package,
`config`, `feature.account`, and `feature.integration` describe their business purpose and important authorization,
transaction, state-transition, time, persistence, encryption, and raw-token boundaries. Trivial form/entity accessors
remain intentionally undocumented as permitted by the repository standard.
## Test method
The Maven Javadoc Plugin generates protected/public API documentation using Java 25 with doclint enabled. The
`missing` category is disabled because the repository explicitly exempts trivial accessors and generated methods;
all structural HTML/reference/syntax categories remain enabled. Compilation and the full runtime suite separately
verify the documented sources.
## Hand-derived expected result
Documentation generation completes without doclint errors or warnings for the selected categories, and Java
compilation plus all Platform tests remain green.
## RED
**Command**
```text
Not applicable: this is the approved Iteration 1 documentation retrofit. No runtime RED was invented.
```
**Observed result**
```text
Before the retrofit, manual source audit found missing type and non-trivial API Javadocs throughout Platform-owned
config, account, and integration code. This is review evidence, not a claimed executable RED.
```
## GREEN
**Command**
```text
export JAVA_HOME=/opt/homebrew/opt/openjdk@25
export PATH="$JAVA_HOME/bin:$PATH"
./mvnw -DskipTests -Dshow=protected -Ddoclint=all,-missing javadoc:javadoc
```
**Observed result**
```text
Maven Javadoc Plugin 3.12.0
BUILD SUCCESS
No Javadoc warnings were emitted.
```
## Affected suite
**Command and result**
```text
export JAVA_HOME=/opt/homebrew/opt/openjdk@25
export PATH="$JAVA_HOME/bin:$PATH"
export DOCKER_HOST=unix:///Users/sechmachine/.orbstack/run/docker.sock
./mvnw test
Tests run: 26, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
PostgreSQL: 18.4
```
## External-test boundaries
Generated Javadocs validate documentation syntax and references, not whether every statement is behaviorally true.
The focused and full production-shaped tests provide that separate runtime evidence. Private fields/helpers and
trivial accessors are outside the retrofit contract.
@@ -0,0 +1,69 @@
# Test Evidence: Bounded SMTP transport and configured sender name
- **Test type:** Unit
- **Requirement IDs:** `INT-005`, `INT-007`, `NOT-008`
- **Scenario IDs:** No direct acceptance-scenario mapping (transport-adapter regression)
- **Test class/method:** `com.lab.labtimesheet.feature.integration.service.JavaMailSmtpProbeTest`
- **Implementation commit:** `6181984cf85f184be39513d6313f9cbe8267add5`
## Protected behavior
Immediate SMTP calls configure finite connection, read, and write timeouts for SMTP and SMTPS, and apply both the
configured From address and human-readable From name to the MIME message.
## Test method
The test injects a local JavaMail sender factory, exercises both STARTTLS and TLS connections, and inspects the
resulting JavaMail properties and MIME From header without opening a network connection or exposing a real secret.
## Hand-derived expected result
STARTTLS uses `mail.smtp.*` timeout properties; TLS uses `mail.smtps.*`. Each timeout is 5000 milliseconds and the
encoded From header contains the configured address and display name.
## RED
**Command**
```text
export JAVA_HOME=/opt/homebrew/opt/openjdk@25
export PATH="$JAVA_HOME/bin:$PATH"
./mvnw -Dtest=JavaMailSmtpProbeTest test
```
**Observed result**
```text
BUILD FAILURE during test compilation: JavaMailSmtpProbe had no injectable sender-factory constructor needed to
inspect production message construction without network I/O.
```
## GREEN
**Command**
```text
./mvnw -Dtest=JavaMailSmtpProbeTest test
```
**Observed result**
```text
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
```
## Affected suite
**Command and result**
```text
./mvnw -Dtest=BootstrapIntegrationTest,SmtpOnboardingWebIntegrationTest,AccountActivationIntegrationTest,AccountWebIntegrationTest,BootstrapOnboardingWebIntegrationTest,JavaMailSmtpProbeTest,SecurityResponseIntegrationTest test
Tests run: 20, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS
```
## External-test boundaries
This is a network-free adapter construction test. It does not prove DNS, TLS negotiation, authentication, Mailpit,
or production SMTP interoperability. Test values are non-secret fixtures.