Skip to content

Route B, step 2: entry point × culture × type probe sweep #124

Closed

Description

@CaffeinatedCoder

Route B, step 2 (#105, test/oracles/axes.md): a probe sweep over entry point × current culture × type, closing the pairs axes.md lists as varied by no test.

Pairs this closes

  • entry point × culture × type: Parse (string and span), TryParse, TypeConverter, IConfiguration binding, MVC [FromQuery] / [FromBody], minimal API parameter and body, including a variant-typed and a nullable parameter, under invariant, de-DE and th-TH as the current culture
  • host × request culture (RequestLocalization)
  • configuration × every type (one property per family today)
  • current culture × JSON (the culture sweep stops at ToString)

Oracle

The documented promise: the literal is a wire format with no culture (J04, J05, J13–J16). Each row asserts the consumer-visible outcome — the parsed value equals the invariant-parsed value, formatted text is the invariant literal, a host answers 200 with the right value or 400, never 200 with null.

Done when

  • *ProbeTests classes in the conventions project (no host) and AspNetCore.Tests (host entry points), one [DynamicData] row per discovered type, ending in Candidates.Verdict
  • registered in oracles.json, named in the heldBy of the claims they hold, with a seed proven by dotnet run tools/oracles.cs seeds
  • axes.md moves the pairs into "Varied by"; a paragraph in docs/oracles.md and docs/testing.md
  • any disagreement filed as a bug and registered in candidates.json (Minimal API binds a variant-typed parameter as null for a valid literal and answers 200 #116 is a known cell)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/jsonSystem.Text.Json and TypeConverter wire formsarea/literalsParse, TryParse and formattingpackage/coreAffects CodoMetis.ValueRangespackage/nodatimeAffects CodoMetis.ValueRanges.NodaTimetestsAdds or changes tests only (oracles, harnesses); no library code

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions