diff --git a/docs/engineering/testing-style.md b/docs/engineering/testing-style.md
index ab9588c11..815f22148 100644
--- a/docs/engineering/testing-style.md
+++ b/docs/engineering/testing-style.md
@@ -64,15 +64,18 @@ sized to need:
like a BCL type shadows it there: tests under `Debug/` declare `OpenCode.Sdk.Tests.Debug` and
qualify `System.Diagnostics.Debug`. A guard test refuses two source types that project onto
one test path.
-- In SDK.Tests, a helper or fixture used by one slice lives in that slice's `Support/` or
- `Fixtures/`. Helpers and fixtures used by several slices stay in the test project's root
- `Support/` and `Fixtures/`. Embedded fixtures retain their `Fixtures.` resource-name prefix
- through explicit `LogicalName` metadata. Live-server harness code lives in
+- In SDK.Tests and Tools.Tests, a helper or fixture used by one slice lives in that slice's
+ `Support/` or `Fixtures/`. Helpers and fixtures used by several slices stay in the test project's
+ root `Support/` and `Fixtures/`. Tools.Tests also keeps its Roslyn compiler helpers
+ (`GeneratedSourceCompiler` and its closure) in the root `Support/`, whichever slices use them
+ today. Embedded fixtures retain their `Fixtures.` resource-name prefix through explicit
+ `LogicalName` metadata. Live-server harness code lives in
`tests/OpenCode.Sdk.Tests/Harness/`. Files another test project links, and the
embedded-fixture loader, stay in `tests/Shared/`, compiled through explicit links. There is no
separate test-support project.
- The mirror rule also applies to test infrastructure: `Harness/X.cs` is tested in
- `Harness/XTests.cs`, and `Support/X.cs` is tested in `Support/XTests.cs`. A subject with
+ `Harness/XTests.cs`, and `Support/X.cs` is tested in `Support/XTests.cs`, including the
+ `Support/` folder in Tools.Tests. A subject with
several test files keeps those files beside the subject.
## 2. Filesystem rule
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/missing-memory-report-full.json b/tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/missing-memory-report-full.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/missing-memory-report-full.json
rename to tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/missing-memory-report-full.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/wire-metrics-report-full.json b/tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/wire-metrics-report-full.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/wire-metrics-report-full.json
rename to tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/wire-metrics-report-full.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/zero-median-report-full.json b/tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/zero-median-report-full.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/zero-median-report-full.json
rename to tests/OpenCode.Sdk.Tools.Tests/Benchmarks/Fixtures/zero-median-report-full.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Clones/CloneDetectorTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Clones/CloneDetectorTests.cs
index c3434b60e..daa1a3ef4 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Clones/CloneDetectorTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Clones/CloneDetectorTests.cs
@@ -1,7 +1,7 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using OpenCode.Sdk.Tools.Clones;
-using OpenCode.Sdk.Tools.Tests.Clones.Support;
+using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Clones;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Benchmarks/CompareBenchmarksCommandTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Commands/CompareBenchmarksCommandTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Benchmarks/CompareBenchmarksCommandTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Commands/CompareBenchmarksCommandTests.cs
index 352e10c2e..795919ecc 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Benchmarks/CompareBenchmarksCommandTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Commands/CompareBenchmarksCommandTests.cs
@@ -7,7 +7,7 @@
using Testably.Abstractions.Testing;
using Testably.Abstractions.Testing.Initializer;
-namespace OpenCode.Sdk.Tools.Tests.Benchmarks;
+namespace OpenCode.Sdk.Tools.Tests.Commands;
public sealed class CompareBenchmarksCommandTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/net10-only-report-full.json b/tests/OpenCode.Sdk.Tools.Tests/Commands/Fixtures/net10-only-report-full.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Benchmarks/net10-only-report-full.json
rename to tests/OpenCode.Sdk.Tools.Tests/Commands/Fixtures/net10-only-report-full.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TestRosterScenario.cs b/tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TestRosterScenario.cs
similarity index 97%
rename from tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TestRosterScenario.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TestRosterScenario.cs
index f19bbfb64..82c1cf93c 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TestRosterScenario.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TestRosterScenario.cs
@@ -2,7 +2,7 @@
using Testably.Abstractions.Testing;
using Testably.Abstractions.Testing.Initializer;
-namespace OpenCode.Sdk.Tools.Tests.TestRoster.Support;
+namespace OpenCode.Sdk.Tools.Tests.Commands.Support;
/// A verify-test-roster scenario: the committed roster file plus one TRX per module that
/// ran. Roster legs and TRX files are declared in domain terms; the JSON and XML live here.
diff --git a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TrxContent.cs b/tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TrxContent.cs
similarity index 94%
rename from tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TrxContent.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TrxContent.cs
index a1daac65e..9cf65cb17 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/Support/TrxContent.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Commands/Support/TrxContent.cs
@@ -1,6 +1,6 @@
using System.Globalization;
-namespace OpenCode.Sdk.Tools.Tests.TestRoster.Support;
+namespace OpenCode.Sdk.Tools.Tests.Commands.Support;
/// Builds the minimal TRX documents the reader consumes: a TestRun whose
/// ResultSummary/Counters report the given totals.
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyClonesCommandTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyClonesCommandTests.cs
index 08e0a6542..f8e7b7995 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyClonesCommandTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyClonesCommandTests.cs
@@ -1,7 +1,7 @@
using System.IO.Abstractions;
using Microsoft.Extensions.DependencyInjection;
using OpenCode.Sdk.Tools.Generator.Refresh.Abstractions;
-using OpenCode.Sdk.Tools.Tests.Clones.Support;
+using OpenCode.Sdk.Tools.Tests.Support;
using Spectre.Console;
using Spectre.Console.Cli.Testing;
using Spectre.Console.Testing;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/VerifyTestRosterCommandTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyTestRosterCommandTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/TestRoster/VerifyTestRosterCommandTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyTestRosterCommandTests.cs
index 4863fb163..959afc0e2 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/TestRoster/VerifyTestRosterCommandTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Commands/VerifyTestRosterCommandTests.cs
@@ -3,13 +3,13 @@
using System.Text.Json.Nodes;
using Microsoft.Extensions.DependencyInjection;
using OpenCode.Sdk.Tools.TestRoster;
-using OpenCode.Sdk.Tools.Tests.TestRoster.Support;
+using OpenCode.Sdk.Tools.Tests.Commands.Support;
using Spectre.Console;
using Spectre.Console.Cli.Testing;
using Spectre.Console.Testing;
using Testably.Abstractions.Testing;
-namespace OpenCode.Sdk.Tools.Tests.TestRoster;
+namespace OpenCode.Sdk.Tools.Tests.Commands;
public sealed class VerifyTestRosterCommandTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/FamilyPrefixTableTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/FamilyPrefixTableTests.cs
index 056986d4d..7dbef6e4e 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/FamilyPrefixTableTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/FamilyPrefixTableTests.cs
@@ -1,6 +1,6 @@
using OpenCode.Sdk.Tools.Generator.Binding;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
-using static OpenCode.Sdk.Tools.Tests.Support.OwnershipPlanData;
+using static OpenCode.Sdk.Tools.Tests.Generator.Binding.Support.OwnershipPlanData;
namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/alias-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/alias-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/alias-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/alias-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/declined-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/declined-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/declined-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/declined-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-group-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-group-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-group-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-group-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-row-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-row-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-row-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-row-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-section-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-section-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/duplicate-section-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/duplicate-section-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/internal-raw-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/internal-raw-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/internal-raw-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/internal-raw-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/mutually-exclusive-queries-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/mutually-exclusive-queries-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/mutually-exclusive-queries-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/mutually-exclusive-queries-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/null-member-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/null-member-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/null-member-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/null-member-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/operation-name-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/operation-name-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/operation-name-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/operation-name-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/property-overrides-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/property-overrides-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/property-overrides-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/property-overrides-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/redacted-open-members-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/redacted-open-members-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/redacted-open-members-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/redacted-open-members-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/redacted-open-members-missing-redact-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/redacted-open-members-missing-redact-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/redacted-open-members-missing-redact-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/redacted-open-members-missing-redact-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/session-scoped-event-missing-reason-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/session-scoped-event-missing-reason-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/session-scoped-event-missing-reason-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/session-scoped-event-missing-reason-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/transport-owned-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/transport-owned-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/transport-owned-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/transport-owned-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/unknown-curation-field.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/unknown-curation-field.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/unknown-curation-field.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/unknown-curation-field.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/unknown-emission-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/unknown-emission-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/unknown-emission-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/unknown-emission-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/valid-curation.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/valid-curation.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Binding/valid-curation.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Fixtures/valid-curation.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/InternalNameCollisionCheckTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/InternalNameCollisionCheckTests.cs
index 18f24be93..82c224e5d 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/InternalNameCollisionCheckTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/InternalNameCollisionCheckTests.cs
@@ -1,7 +1,7 @@
using OpenCode.Sdk.Tools.Generator.Binding;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Tests.Support;
-using static OpenCode.Sdk.Tools.Tests.Support.OwnershipPlanData;
+using static OpenCode.Sdk.Tools.Tests.Generator.Binding.Support.OwnershipPlanData;
namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelOwnershipPolicyTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelOwnershipPolicyTests.cs
index 935fe9553..66b91b08a 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelOwnershipPolicyTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelOwnershipPolicyTests.cs
@@ -1,8 +1,9 @@
using OpenCode.Sdk.Tools.Generator.Binding;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
using TUnit.Assertions.Enums;
+using static OpenCode.Sdk.Tools.Tests.Generator.Binding.Support.OwnershipPlanData;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-using static OpenCode.Sdk.Tools.Tests.Support.OwnershipPlanData;
namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
@@ -73,7 +74,7 @@ public async Task Place_Should_Place_A_Model_By_A_Group_Prefix_Alias()
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(ModelsDevRefreshed), Ownership(FamiliesWithModelAlias()));
+ var placement = Place(errors, OwnershipPlanData.Models(ModelsDevRefreshed), Ownership(FamiliesWithModelAlias()));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf(ModelsDevRefreshed)).IsEqualTo(TypeHome.Family(LanguageModels));
@@ -87,7 +88,7 @@ public async Task Place_Should_Refuse_An_Owner_Row_That_Confirms_A_Family_Prefix
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(model),
+ var placement = Place(errors, OwnershipPlanData.Models(model),
Ownership(prefixAlias ? FamiliesWithModelAlias() : Families(), owners: [Owner(match, family)]));
var exception = Assert.Throws(errors.ThrowIfAny);
@@ -102,7 +103,7 @@ public async Task Place_Should_Refuse_A_Prefix_Alias_When_An_Owner_Row_Places_It
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(ModelsDevRefreshed),
+ var placement = Place(errors, OwnershipPlanData.Models(ModelsDevRefreshed),
Ownership(FamiliesWithModelAlias(), owners: [Owner("ModelsDev", OtherFamily)]));
await Assert.That(placement.HomeOf(ModelsDevRefreshed)).IsEqualTo(TypeHome.Family(OtherFamily));
@@ -138,7 +139,7 @@ public async Task Place_Should_Refuse_A_Prefix_Alias_That_Another_Family_Already
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionInfo), Ownership(FamiliesWithModelAlias(SessionAlias)));
+ _ = Place(errors, OwnershipPlanData.Models(SessionInfo), Ownership(FamiliesWithModelAlias(SessionAlias)));
await AssertRefusedAsync(errors, SessionAlias, $"the name prefix places models in both '{LanguageModels}' and '{Sessions}'");
}
@@ -149,7 +150,7 @@ public async Task Place_Should_Refuse_A_Prefix_Alias_That_Repeats_A_Prefix_Of_It
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(ModelInfo), Ownership(FamiliesWithModelAlias(ModelAlias)));
+ _ = Place(errors, OwnershipPlanData.Models(ModelInfo), Ownership(FamiliesWithModelAlias(ModelAlias)));
await AssertRefusedAsync(errors, ModelAlias, $"the prefix alias repeats a prefix family '{LanguageModels}' already has");
}
@@ -163,7 +164,7 @@ public async Task Place_Should_Prefer_The_Longest_Matching_Family_Prefix()
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("PersistentPtyInfo", "PersistentStore"), Ownership(PersistentFamilies()));
+ var placement = Place(errors, OwnershipPlanData.Models("PersistentPtyInfo", "PersistentStore"), Ownership(PersistentFamilies()));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf("PersistentPtyInfo")).IsEqualTo(TypeHome.Family("PersistentPtys"));
@@ -175,7 +176,7 @@ public async Task Place_Should_Not_Match_A_Family_Prefix_When_The_Next_Character
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("FormInfo", "FormatInfo"));
+ var placement = Place(errors, OwnershipPlanData.Models("FormInfo", "FormatInfo"));
await Assert.That(placement.HomeOf("FormInfo")).IsEqualTo(TypeHome.Family("Forms"));
await Assert.That(placement.Unplaced).IsEquivalentTo(["FormatInfo"]);
@@ -186,7 +187,7 @@ public async Task Place_Should_Match_A_Family_Prefix_Ignoring_Its_Case()
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("WebSearchResult"));
+ var placement = Place(errors, OwnershipPlanData.Models("WebSearchResult"));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf("WebSearchResult")).IsEqualTo(TypeHome.Family("Websearch"));
@@ -236,7 +237,7 @@ public async Task Place_Should_Place_A_Body_Request_With_The_Family_That_Sends_I
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(SessionLoginRequest), bodyOperations: [BodyOperation(Credentials, SessionLoginRequest)]);
+ var placement = Place(errors, OwnershipPlanData.Models(SessionLoginRequest), bodyOperations: [BodyOperation(Credentials, SessionLoginRequest)]);
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf(SessionLoginRequest)).IsEqualTo(TypeHome.Family(Credentials));
@@ -248,7 +249,7 @@ public async Task Place_Should_Place_A_Binary_Body_By_Its_Name_And_Not_List_It_A
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("SessionUpload"), bodyOperations: [BodyOperation(Credentials, "SessionUpload", isBinary: true)]);
+ var placement = Place(errors, OwnershipPlanData.Models("SessionUpload"), bodyOperations: [BodyOperation(Credentials, "SessionUpload", isBinary: true)]);
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf("SessionUpload")).IsEqualTo(TypeHome.Family(Sessions));
@@ -260,7 +261,7 @@ public async Task Place_Should_Refuse_A_Body_Request_When_Two_Families_Send_It()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionLoginRequest),
+ _ = Place(errors, OwnershipPlanData.Models(SessionLoginRequest),
bodyOperations: [BodyOperation(Credentials, SessionLoginRequest), BodyOperation(McpServers, SessionLoginRequest)]);
await AssertRefusedAsync(errors, SessionLoginRequest, "has no single family root");
@@ -273,7 +274,7 @@ public async Task Place_Should_Place_An_Unprefixed_Model_By_Its_Owner_Row(string
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(model), Ownership(owners: [Owner(match, owner)]));
+ var placement = Place(errors, OwnershipPlanData.Models(model), Ownership(owners: [Owner(match, owner)]));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf(model)).IsEqualTo(TypeHome.Family(owner));
@@ -284,7 +285,7 @@ public async Task Place_Should_Prefer_An_Owner_Row_Over_A_Family_Prefix()
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("SessionError"), Ownership(owners: [Owner("SessionError", TypeHome.CommonSlice)]));
+ var placement = Place(errors, OwnershipPlanData.Models("SessionError"), Ownership(owners: [Owner("SessionError", TypeHome.CommonSlice)]));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf("SessionError")).IsEqualTo(TypeHome.Family(TypeHome.CommonSlice));
@@ -295,7 +296,7 @@ public async Task Place_Should_Refuse_A_Model_When_Two_Owner_Rows_Match_It()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(ProviderAuthMethod), Ownership(owners: [Owner("Provider", Credentials), Owner(ProviderAuth, McpServers)]));
+ _ = Place(errors, OwnershipPlanData.Models(ProviderAuthMethod), Ownership(owners: [Owner("Provider", Credentials), Owner(ProviderAuth, McpServers)]));
await AssertRefusedAsync(errors, ProviderAuthMethod, "all match the model");
}
@@ -315,7 +316,7 @@ public async Task Place_Should_Refuse_An_Owner_Row_Whose_Owner_Is_Not_An_Admitte
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(ProviderAuthMethod), Ownership(owners: [Owner(ProviderAuth, "Providers")]));
+ _ = Place(errors, OwnershipPlanData.Models(ProviderAuthMethod), Ownership(owners: [Owner(ProviderAuth, "Providers")]));
await AssertRefusedAsync(errors, ProviderAuth, "is neither an admitted family nor 'Common'");
}
@@ -325,7 +326,7 @@ public async Task Place_Should_Refuse_An_Owner_Row_Without_A_Reason()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(ProviderAuthMethod), Ownership(owners: [Owner(ProviderAuth, Credentials, reason: BlankReason)]));
+ _ = Place(errors, OwnershipPlanData.Models(ProviderAuthMethod), Ownership(owners: [Owner(ProviderAuth, Credentials, reason: BlankReason)]));
await AssertRefusedAsync(errors, ProviderAuth, "must declare a reason");
}
@@ -335,7 +336,7 @@ public async Task Place_Should_List_An_Unprefixed_Model_As_Unplaced_When_No_Owne
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("OutputFormat"));
+ var placement = Place(errors, OwnershipPlanData.Models("OutputFormat"));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.Homes.ContainsKey("OutputFormat")).IsFalse();
@@ -350,7 +351,7 @@ public async Task Place_Should_Give_A_Sessions_Model_And_Its_Companions_The_Area
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(SessionCreated, "SessionCreatedData", "SessionCreatedDurable"),
+ var placement = Place(errors, OwnershipPlanData.Models(SessionCreated, "SessionCreatedData", "SessionCreatedDurable"),
Ownership(areas: [Area(Lifecycle, SessionCreated)]));
await Assert.That(errors.Count).IsEqualTo(0);
@@ -362,7 +363,7 @@ public async Task Place_Should_Leave_The_Area_Empty_When_A_Sessions_Model_Matche
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models(SessionCreated, SessionInfo), Ownership(areas: [Area(Lifecycle, SessionCreated)]));
+ var placement = Place(errors, OwnershipPlanData.Models(SessionCreated, SessionInfo), Ownership(areas: [Area(Lifecycle, SessionCreated)]));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf(SessionInfo)).IsEqualTo(TypeHome.Family(Sessions));
@@ -373,7 +374,7 @@ public async Task Place_Should_Not_Match_An_Area_Pattern_When_The_Next_Character
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("SessionForkBoundary", "SessionForked"), Ownership(areas: [Area("Fork", "SessionFork")]));
+ var placement = Place(errors, OwnershipPlanData.Models("SessionForkBoundary", "SessionForked"), Ownership(areas: [Area("Fork", "SessionFork")]));
await Assert.That(errors.Count).IsEqualTo(0);
await Assert.That(placement.HomeOf("SessionForkBoundary")).IsEqualTo(SessionsArea("Fork"));
@@ -385,7 +386,7 @@ public async Task Place_Should_Not_Give_An_Area_When_Another_Family_Owns_The_Mod
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("ToolPart", "ToolDefinition"),
+ var placement = Place(errors, OwnershipPlanData.Models("ToolPart", "ToolDefinition"),
Ownership(owners: [Owner("ToolPart", Sessions), Owner("ToolDefinition", McpServers)], areas: [Area("Turn", "Tool")]));
await Assert.That(errors.Count).IsEqualTo(0);
@@ -398,7 +399,7 @@ public async Task Place_Should_Not_Give_An_Area_To_A_Body_Request()
{
var errors = new BindingErrorCollector();
- var placement = Place(errors, Models("SessionCreateRequest", "SessionCreateOptions"), Ownership(areas: [Area("Create", "SessionCreate")]),
+ var placement = Place(errors, OwnershipPlanData.Models("SessionCreateRequest", "SessionCreateOptions"), Ownership(areas: [Area("Create", "SessionCreate")]),
bodyOperations: [BodyOperation(Sessions, "SessionCreateRequest")]);
await Assert.That(errors.Count).IsEqualTo(0);
@@ -411,7 +412,7 @@ public async Task Place_Should_Refuse_A_Model_When_Two_Areas_Match_It()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated), Area("Events", "Session")]));
+ _ = Place(errors, OwnershipPlanData.Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated), Area("Events", "Session")]));
await AssertRefusedAsync(errors, SessionCreated, "place the model in more than one area");
}
@@ -421,7 +422,7 @@ public async Task Place_Should_Refuse_An_Area_Pattern_That_Places_No_Model()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated, "SessionMoved")]));
+ _ = Place(errors, OwnershipPlanData.Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated, "SessionMoved")]));
await AssertRefusedAsync(errors, $"{Lifecycle}/SessionMoved", "session area pattern places no generated model");
}
@@ -437,7 +438,7 @@ public async Task Place_Should_Refuse_A_Reserved_Area_Name(string area)
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionCreated), Ownership(areas: [Area(area, SessionCreated)]));
+ _ = Place(errors, OwnershipPlanData.Models(SessionCreated), Ownership(areas: [Area(area, SessionCreated)]));
await AssertRefusedAsync(errors, area, "reserved");
}
@@ -447,7 +448,7 @@ public async Task Place_Should_Refuse_An_Area_Row_Without_A_Reason()
{
var errors = new BindingErrorCollector();
- _ = Place(errors, Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated) with { Reason = BlankReason }]));
+ _ = Place(errors, OwnershipPlanData.Models(SessionCreated), Ownership(areas: [Area(Lifecycle, SessionCreated) with { Reason = BlankReason }]));
await AssertRefusedAsync(errors, Lifecycle, "session area curation must declare a reason");
}
@@ -459,7 +460,7 @@ public async Task Place_Should_Refuse_Area_Rows_When_No_Sessions_Family_Is_Admit
var groups = Families();
_ = groups.Remove("session");
- _ = Place(errors, Models(SessionCreated), Ownership(groups, areas: [Area(Lifecycle, SessionCreated)]));
+ _ = Place(errors, OwnershipPlanData.Models(SessionCreated), Ownership(groups, areas: [Area(Lifecycle, SessionCreated)]));
await AssertRefusedAsync(errors, "sessionAreas", "session areas need the 'Sessions' family");
}
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelReachCollectorTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelReachCollectorTests.cs
index 297fb0d21..99586354a 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelReachCollectorTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelReachCollectorTests.cs
@@ -2,8 +2,8 @@
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Tests.Support;
+using static OpenCode.Sdk.Tools.Tests.Generator.Binding.Support.OwnershipPlanData;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-using static OpenCode.Sdk.Tools.Tests.Support.OwnershipPlanData;
namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/EnumMemberNameCurationTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/EnumMemberNameCurationTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/EnumMemberNameCurationTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/EnumMemberNameCurationTests.cs
index 014b41b30..264c723ce 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/EnumMemberNameCurationTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/EnumMemberNameCurationTests.cs
@@ -4,7 +4,7 @@
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Models;
///
/// The enumMemberNames curation channel: a reason-bearing row names the C# member one
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ParameterNameCurationTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/ParameterNameCurationTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ParameterNameCurationTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/ParameterNameCurationTests.cs
index 85ab83a9b..cc7bd03b6 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ParameterNameCurationTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/ParameterNameCurationTests.cs
@@ -4,7 +4,7 @@
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Binding;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Models;
///
/// The parameterNames curation channel: a reason-bearing row names the C# parameter one
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SessionScopedEventBinderTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SessionScopedEventBinderTests.cs
index 940b5a0d6..5db1b4914 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SessionScopedEventBinderTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SessionScopedEventBinderTests.cs
@@ -1,5 +1,4 @@
using OpenCode.Sdk.Tools.Generator.Binding.Models;
-using OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/OwnershipPlanData.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/OwnershipPlanData.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/OwnershipPlanData.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/OwnershipPlanData.cs
index e623926e3..5aafbbac5 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/OwnershipPlanData.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/OwnershipPlanData.cs
@@ -3,7 +3,7 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
///
/// Bound-plan vocabulary for model ownership scenarios: the families the real curation admits, the
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/UpstreamClientContract.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContract.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/UpstreamClientContract.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContract.cs
index 8331cee1b..25c5f2db7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/UpstreamClientContract.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContract.cs
@@ -1,6 +1,6 @@
using System.Text.RegularExpressions;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
///
/// Reads the input contract of upstream's generated client at the pin: which input type each
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/UpstreamClientContractTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContractTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/Tests/UpstreamClientContractTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContractTests.cs
index daf1d9a21..2fbbc68b5 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/UpstreamClientContractTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/UpstreamClientContractTests.cs
@@ -1,4 +1,4 @@
-namespace OpenCode.Sdk.Tools.Tests.Support.Tests;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
///
/// The grammar reads from upstream's generated client: a route
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/UpstreamClientQueryTypeTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/UpstreamClientQueryTypeTests.cs
index 2533a8e0b..18bc296a5 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/UpstreamClientQueryTypeTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/UpstreamClientQueryTypeTests.cs
@@ -3,6 +3,7 @@
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Serialization;
+using OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using Testably.Abstractions;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/CallableSurfaceCompilationTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/CallableSurfaceCompilationTests.cs
index db4b5e5f5..c9c260be3 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/CallableSurfaceCompilationTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/CallableSurfaceCompilationTests.cs
@@ -1,4 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ClientEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ClientEmitterTests.cs
index a68119df5..a68b2239d 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ClientEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ClientEmitterTests.cs
@@ -1,7 +1,7 @@
using System.Text;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeDtoEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeDtoEmitterTests.cs
index 77f0d5638..fa1957df8 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeDtoEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeDtoEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeEmitterTests.cs
index 926f6835b..f5df43299 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/EnvelopeEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ExperimentalSurfaceEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ExperimentalSurfaceEmissionTests.cs
index aab88abf8..54b2f31c1 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ExperimentalSurfaceEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ExperimentalSurfaceEmissionTests.cs
@@ -4,6 +4,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/FirstMatchUnionEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/FirstMatchUnionEmissionTests.cs
index cf7d47f04..efbb9ee21 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/FirstMatchUnionEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/FirstMatchUnionEmissionTests.cs
@@ -3,6 +3,7 @@
using System.Text.Json.Serialization;
using System.Text.Json.Serialization.Metadata;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/first-match-cases.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/first-match-cases.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/first-match-cases.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/first-match-cases.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/shared-live-durable-event.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/shared-live-durable-event.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/shared-live-durable-event.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/shared-live-durable-event.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-boolean.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-boolean.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-boolean.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-boolean.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-malformed-string-list.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-malformed-string-list.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-malformed-string-list.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-malformed-string-list.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-named-number-string.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-named-number-string.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-named-number-string.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-named-number-string.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-number.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-number.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-number.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-number.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-string-list.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-string-list.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-string-list.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-string-list.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-string.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-string.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-string.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-string.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-unknown.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-unknown.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/structural-unknown.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/structural-unknown.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/unknown-phase-with-secret.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/unknown-phase-with-secret.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/Serialization/unknown-phase-with-secret.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Fixtures/unknown-phase-with-secret.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/GeneratedFileNameTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/GeneratedFileNameTests.cs
index 9c7bf08e4..7f4cde8f7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/GeneratedFileNameTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/GeneratedFileNameTests.cs
@@ -3,6 +3,7 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/HoistedMemberEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/HoistedMemberEmissionTests.cs
index f11880380..37aa014b7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/HoistedMemberEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/HoistedMemberEmissionTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
using static OpenCode.Sdk.Tools.Tests.Support.UnionHoistPlanData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelEmitterTests.cs
index 20320fa4b..9785df134 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelMaterializationMatrixTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelMaterializationMatrixTests.cs
index 7cc975399..e32c0197c 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelMaterializationMatrixTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelMaterializationMatrixTests.cs
@@ -7,6 +7,7 @@
using System.Text.Json.Serialization.Metadata;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/QueryRequestEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/QueryRequestEmitterTests.cs
index 0961457ae..f7f6b89b9 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/QueryRequestEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/QueryRequestEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RegistryEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RegistryEmitterTests.cs
index 524fee9f5..91c25f89a 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RegistryEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RegistryEmitterTests.cs
@@ -1,6 +1,6 @@
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ResponseAdapterEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ResponseAdapterEmitterTests.cs
index 3d347d898..4845cc1b7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ResponseAdapterEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ResponseAdapterEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RoutesEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RoutesEmitterTests.cs
index 0b8294235..04c998933 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RoutesEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/RoutesEmitterTests.cs
@@ -1,5 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SecretMemberEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SecretMemberEmissionTests.cs
index fd57487f0..452b8c594 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SecretMemberEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SecretMemberEmissionTests.cs
@@ -4,6 +4,7 @@
using System.Text.Json.Serialization.Metadata;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SessionScopedEventEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SessionScopedEventEmissionTests.cs
index adc0cbd50..db92a2f88 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SessionScopedEventEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SessionScopedEventEmissionTests.cs
@@ -3,7 +3,6 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
-using OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SourceEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SourceEmitterTests.cs
index ab3869ba9..38085c8c4 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SourceEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/SourceEmitterTests.cs
@@ -6,6 +6,7 @@
using OpenCode.Sdk.Tools.Generator.Binding;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StreamOperationEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StreamOperationEmissionTests.cs
index 0009b00e8..39beb33e9 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StreamOperationEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StreamOperationEmissionTests.cs
@@ -1,4 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StructuralUnionEmissionTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StructuralUnionEmissionTests.cs
index 12c9aaba7..0c4081fbf 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StructuralUnionEmissionTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StructuralUnionEmissionTests.cs
@@ -1,6 +1,7 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/EmitterPlanFixture.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterPlanFixture.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/EmitterPlanFixture.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterPlanFixture.cs
index 82aecc590..260b71e21 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/EmitterPlanFixture.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterPlanFixture.cs
@@ -1,9 +1,10 @@
using OpenCode.Sdk.Tools.Generator.Binding;
using OpenCode.Sdk.Tools.Generator.Binding.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
internal static class EmitterPlanFixture
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/EmitterSnapshot.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterSnapshot.cs
similarity index 95%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/EmitterSnapshot.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterSnapshot.cs
index 9323eefcd..81bc2aee7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/EmitterSnapshot.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterSnapshot.cs
@@ -1,7 +1,7 @@
using System.Text;
using OpenCode.Sdk.Tools.Generator.Emission;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
internal static class EmitterSnapshot
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/ExperimentalConsumerSyntax.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/ExperimentalConsumerSyntax.cs
similarity index 96%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/ExperimentalConsumerSyntax.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/ExperimentalConsumerSyntax.cs
index d79b6e36b..8416ee893 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/ExperimentalConsumerSyntax.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/ExperimentalConsumerSyntax.cs
@@ -1,7 +1,7 @@
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
internal static class ExperimentalConsumerSyntax
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/MaterializationMatrixScenario.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/MaterializationMatrixScenario.cs
similarity index 98%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/MaterializationMatrixScenario.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/MaterializationMatrixScenario.cs
index f0e5197db..7b4730222 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/MaterializationMatrixScenario.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/MaterializationMatrixScenario.cs
@@ -1,4 +1,6 @@
-namespace OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Support;
+
+namespace OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
internal sealed class MaterializationMatrixScenario : SpecScenario
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/UnionEmitterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/UnionEmitterTests.cs
index 73109e3a5..c6fb03eef 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/UnionEmitterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/UnionEmitterTests.cs
@@ -1,4 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Emission;
+using OpenCode.Sdk.Tools.Tests.Generator.Emission.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Emission;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ComponentKeyRuleTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ComponentKeyRuleTests.cs
index cf1edeee5..9f95d72b0 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ComponentKeyRuleTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ComponentKeyRuleTests.cs
@@ -3,6 +3,7 @@
using Microsoft.OpenApi.Reader;
using OpenCode.Sdk.Tools.Generator.Ingestion;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
using TUnit.Assertions.Enums;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/boolean-property-schema.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/boolean-property-schema.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/boolean-property-schema.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/boolean-property-schema.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/config-plugin-tuple.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/config-plugin-tuple.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/config-plugin-tuple.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/config-plugin-tuple.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-cursor-data.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-cursor-data.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-cursor-data.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-cursor-data.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data-has-more.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data-has-more.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data-has-more.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data-has-more.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data-location.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data-location.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data-location.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data-location.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-data.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-data.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-single-key.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-single-key.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/envelope-single-key.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/envelope-single-key.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/path-level-parameters.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/path-level-parameters.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/path-level-parameters.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/path-level-parameters.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Fixtures/special-number.json b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/special-number.json
similarity index 100%
rename from tests/OpenCode.Sdk.Tools.Tests/Fixtures/special-number.json
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Fixtures/special-number.json
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SpecMediaTypeTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Models/SpecMediaTypeTests.cs
similarity index 94%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SpecMediaTypeTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Models/SpecMediaTypeTests.cs
index 0dfe324cf..0826e6b83 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SpecMediaTypeTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Models/SpecMediaTypeTests.cs
@@ -1,6 +1,6 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Models;
public sealed class SpecMediaTypeTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationIdentityMappingTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationIdentityMappingTests.cs
index 0939b37bf..ce567720e 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationIdentityMappingTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationIdentityMappingTests.cs
@@ -1,3 +1,4 @@
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/EnvelopeClassifierTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/EnvelopeClassifierTests.cs
similarity index 98%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/EnvelopeClassifierTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/EnvelopeClassifierTests.cs
index 52c08fee1..d64cb4649 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/EnvelopeClassifierTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/EnvelopeClassifierTests.cs
@@ -1,7 +1,8 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class EnvelopeClassifierTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ErrorStyleClassifierTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/ErrorStyleClassifierTests.cs
similarity index 91%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ErrorStyleClassifierTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/ErrorStyleClassifierTests.cs
index e4e4dc58d..e606deb18 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ErrorStyleClassifierTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/ErrorStyleClassifierTests.cs
@@ -1,7 +1,8 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class ErrorStyleClassifierTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/GraphKeyBuilderTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/GraphKeyBuilderTests.cs
similarity index 95%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/GraphKeyBuilderTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/GraphKeyBuilderTests.cs
index 5a7dfd1d1..0b892d2fd 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/GraphKeyBuilderTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/GraphKeyBuilderTests.cs
@@ -1,7 +1,7 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class GraphKeyBuilderTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/LiteralClassifierTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/LiteralClassifierTests.cs
similarity index 97%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/LiteralClassifierTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/LiteralClassifierTests.cs
index a52988072..c9233e6f7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/LiteralClassifierTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/LiteralClassifierTests.cs
@@ -1,8 +1,9 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class LiteralClassifierTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationProjectorTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/OperationProjectorTests.cs
similarity index 98%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationProjectorTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/OperationProjectorTests.cs
index 1a2ef21f8..4cc1a46ce 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationProjectorTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/OperationProjectorTests.cs
@@ -1,7 +1,8 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class OperationProjectorTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/PrefixItemsAdapterTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/PrefixItemsAdapterTests.cs
similarity index 97%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/PrefixItemsAdapterTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/PrefixItemsAdapterTests.cs
index d55f681a9..ff3ad0e8e 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/PrefixItemsAdapterTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/PrefixItemsAdapterTests.cs
@@ -1,7 +1,8 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class PrefixItemsAdapterTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/SchemaProjectorTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/SchemaProjectorTests.cs
index 4df6077d0..a973b8eba 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/SchemaProjectorTests.cs
@@ -1,9 +1,10 @@
using OpenCode.Sdk.Tools.Generator.Ingestion;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class SchemaProjectorTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/TemplateLiteralPrefixPolicyTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/TemplateLiteralPrefixPolicyTests.cs
similarity index 96%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/TemplateLiteralPrefixPolicyTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/TemplateLiteralPrefixPolicyTests.cs
index 09b2c12a0..42f775ab2 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/TemplateLiteralPrefixPolicyTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/TemplateLiteralPrefixPolicyTests.cs
@@ -1,6 +1,6 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class TemplateLiteralPrefixPolicyTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/UnionNormalizerTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/UnionNormalizerTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/UnionNormalizerTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/UnionNormalizerTests.cs
index 875e86c6e..d04020523 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/UnionNormalizerTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/UnionNormalizerTests.cs
@@ -1,7 +1,8 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Projection;
public sealed class UnionNormalizerTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorObjectTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorObjectTests.cs
index 90e986912..b9e817ad4 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorObjectTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorObjectTests.cs
@@ -1,4 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/ComponentKeyData.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/ComponentKeyData.cs
similarity index 96%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/ComponentKeyData.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/ComponentKeyData.cs
index a6346ba0a..b543fb6ca 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/ComponentKeyData.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/ComponentKeyData.cs
@@ -1,4 +1,4 @@
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
internal static class ComponentKeyData
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionResult.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionResult.cs
similarity index 92%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionResult.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionResult.cs
index 41f0d48bf..7591ed607 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionResult.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionResult.cs
@@ -1,7 +1,7 @@
using System.Collections.ObjectModel;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
internal sealed record OperationProjectionResult
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionTestHost.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionTestHost.cs
similarity index 96%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionTestHost.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionTestHost.cs
index 48682b5a2..59bb0f27b 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/OperationProjectionTestHost.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/OperationProjectionTestHost.cs
@@ -1,8 +1,9 @@
using OpenCode.Sdk.Tools.Generator.Ingestion;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
+using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
internal sealed class OperationProjectionTestHost
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionResult.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionResult.cs
similarity index 90%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionResult.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionResult.cs
index e3e059508..8737e3d90 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionResult.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionResult.cs
@@ -1,7 +1,7 @@
using System.Collections.ObjectModel;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
internal sealed record SchemaProjectionResult
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionTestHost.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionTestHost.cs
similarity index 96%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionTestHost.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionTestHost.cs
index c945c91bf..fef0edae5 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/SchemaProjectionTestHost.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Support/SchemaProjectionTestHost.cs
@@ -2,8 +2,9 @@
using OpenCode.Sdk.Tools.Generator.Ingestion;
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
using OpenCode.Sdk.Tools.Generator.Ingestion.Projection;
+using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
internal sealed class SchemaProjectionTestHost
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/HostWallPolicyTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/HostWallPolicyTests.cs
index ac321633c..6e6bb9096 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/HostWallPolicyTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/HostWallPolicyTests.cs
@@ -1,3 +1,4 @@
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Walls;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/SchemaWallPolicyTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/SchemaWallPolicyTests.cs
index 10d7293a5..6174a8369 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/SchemaWallPolicyTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Walls/SchemaWallPolicyTests.cs
@@ -1,4 +1,5 @@
using OpenCode.Sdk.Tools.Generator.Ingestion.Models;
+using OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.Generator.Ingestion.Walls;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/OpenCode.Sdk.Tools.Tests.csproj b/tests/OpenCode.Sdk.Tools.Tests/OpenCode.Sdk.Tools.Tests.csproj
index ebb4e81d8..bad3b0f9b 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/OpenCode.Sdk.Tools.Tests.csproj
+++ b/tests/OpenCode.Sdk.Tools.Tests/OpenCode.Sdk.Tools.Tests.csproj
@@ -83,6 +83,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CollapsedAssertionGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CollapsedAssertionGuard.cs
index 5e5a281f1..4747303aa 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CollapsedAssertionGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CollapsedAssertionGuard.cs
@@ -1,4 +1,5 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CommittedSiteListTests.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CommittedSiteListTests.cs
index b0d6e14cd..0ff2ae047 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CommittedSiteListTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/CommittedSiteListTests.cs
@@ -1,4 +1,4 @@
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/FileSizeGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/FileSizeGuard.cs
index 8d6f99da9..b61079d97 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/FileSizeGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/FileSizeGuard.cs
@@ -1,5 +1,5 @@
using System.Globalization;
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/LiveFinallyGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/LiveFinallyGuard.cs
index afc821516..12c6efd1c 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/LiveFinallyGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/LiveFinallyGuard.cs
@@ -1,4 +1,5 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/MirrorGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/MirrorGuard.cs
index 41f0ea041..8dfd4533e 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/MirrorGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/MirrorGuard.cs
@@ -1,4 +1,4 @@
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/OrderBlindEquivalenceGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/OrderBlindEquivalenceGuard.cs
index 9f4707097..550a810de 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/OrderBlindEquivalenceGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/OrderBlindEquivalenceGuard.cs
@@ -1,4 +1,5 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/RealClockGuard.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/RealClockGuard.cs
index 23677759f..4632e3374 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/RealClockGuard.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/RealClockGuard.cs
@@ -1,4 +1,5 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
+using OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
using OpenCode.Sdk.Tools.Tests.Support;
namespace OpenCode.Sdk.Tools.Tests.RepositoryGates;
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpus.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpus.cs
similarity index 52%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpus.cs
rename to tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpus.cs
index dd7c21c3a..e61b21f34 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpus.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpus.cs
@@ -1,3 +1,5 @@
-namespace OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Support;
+
+namespace OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
internal sealed record TestSourceCorpus(IReadOnlyList Paths, IReadOnlyList Files);
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusReader.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusReader.cs
similarity index 88%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusReader.cs
rename to tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusReader.cs
index 84911747c..0b77684d3 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusReader.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusReader.cs
@@ -1,7 +1,8 @@
using System.IO.Abstractions;
using Microsoft.CodeAnalysis.Text;
+using OpenCode.Sdk.Tools.Tests.Support;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
internal sealed class TestSourceCorpusReader(IFileSystem fileSystem)
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusSession.cs b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusSession.cs
similarity index 95%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusSession.cs
rename to tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusSession.cs
index 4bef9ecfa..590944c8f 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/TestSourceCorpusSession.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/Support/TestSourceCorpusSession.cs
@@ -1,11 +1,11 @@
using System.IO.Abstractions;
using OpenCode.Sdk.Tools.Generator.Refresh;
using OpenCode.Sdk.Tools.Generator.Refresh.Abstractions;
-using OpenCode.Sdk.Tools.Tests.RepositoryGates;
+using OpenCode.Sdk.Tools.Tests.Support;
using Testably.Abstractions;
using TUnit.Core.Interfaces;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.RepositoryGates.Support;
/// Completed test syntax shared by all repository source guards in one test session.
public sealed class TestSourceCorpusSession : IAsyncInitializer
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/collapsed-assertions.txt b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/collapsed-assertions.txt
index 60bfd20cd..2aeec889a 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/collapsed-assertions.txt
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/collapsed-assertions.txt
@@ -56,13 +56,13 @@ tests/OpenCode.Sdk.Tests/Transport/ResponseEncodingPolicyTests.cs 2
tests/OpenCode.Sdk.Tools.Tests/Benchmarks/BenchmarkComparisonComposerTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Benchmarks/BenchmarkComparisonCsvComposerTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/DescriptionCurationBinderTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/EnumMemberNameCurationTests.cs 4
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ExperimentalDiagnosticCurationTests.cs 7
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/InternalNameCollisionCheckTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ModelOwnershipPolicyTests.cs 2
+tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/EnumMemberNameCurationTests.cs 4
+tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Models/ParameterNameCurationTests.cs 6
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/NamedStabilizeSchemaTests.cs 5
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/OperationPlanBinderTests.cs 90
-tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ParameterNameCurationTests.cs 6
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/PendingOperationBindabilityProbeTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/QueryParameterClassificationTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SessionScopedEventBinderTests.cs 4
@@ -77,10 +77,10 @@ tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StreamOperationEmissionTests.c
tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/StructuralUnionEmissionTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ComponentKeyRuleTests.cs 4
tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/PinnedSpecSmokeTests.cs 3
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorTests.cs 1
+tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/Projection/SchemaProjectorTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Refresh/PatchSetLoaderTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Refresh/SnapshotSynchronizerTests.cs 7
tests/OpenCode.Sdk.Tools.Tests/Output/GenerationWriterTests.cs 11
tests/OpenCode.Sdk.Tools.Tests/Packaging/NativeAotConsumerTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecScenarioTests.cs 1
+tests/OpenCode.Sdk.Tools.Tests/Support/SpecScenarioTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/ToolAppTests.cs 2
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/file-size.txt b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/file-size.txt
index 17a37ec44..5584b4bb6 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/file-size.txt
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/file-size.txt
@@ -7,4 +7,4 @@ tests/OpenCode.Sdk.Tests/Transport/PipelineTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/OperationPlanBinderTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/SpecBinderTests.cs 1
tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/ModelMaterializationMatrixTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Support/EmitterPlanFixture.cs 1
+tests/OpenCode.Sdk.Tools.Tests/Generator/Emission/Support/EmitterPlanFixture.cs 1
diff --git a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/mirror.txt b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/mirror.txt
index 572c71a0f..e69de29bb 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/mirror.txt
+++ b/tests/OpenCode.Sdk.Tools.Tests/RepositoryGates/mirror.txt
@@ -1,14 +0,0 @@
-tests/OpenCode.Sdk.Tools.Tests/Benchmarks/CompareBenchmarksCommandTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/EnumMemberNameCurationTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/ParameterNameCurationTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/EnvelopeClassifierTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/ErrorStyleClassifierTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/GraphKeyBuilderTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/LiteralClassifierTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/OperationProjectorTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/PrefixItemsAdapterTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SchemaProjectorTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/SpecMediaTypeTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/TemplateLiteralPrefixPolicyTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/Generator/Ingestion/UnionNormalizerTests.cs 1
-tests/OpenCode.Sdk.Tools.Tests/TestRoster/VerifyTestRosterCommandTests.cs 1
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Clones/Support/CloneScenario.cs b/tests/OpenCode.Sdk.Tools.Tests/Support/CloneScenario.cs
similarity index 98%
rename from tests/OpenCode.Sdk.Tools.Tests/Clones/Support/CloneScenario.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Support/CloneScenario.cs
index 2eca74a4b..25cb1a0d6 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Clones/Support/CloneScenario.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Support/CloneScenario.cs
@@ -2,10 +2,9 @@
using System.Text.Json;
using OpenCode.Sdk.Tools.Clones;
using OpenCode.Sdk.Tools.Generator.Refresh.Abstractions;
-using OpenCode.Sdk.Tools.Tests.Support;
using Testably.Abstractions.Testing;
-namespace OpenCode.Sdk.Tools.Tests.Clones.Support;
+namespace OpenCode.Sdk.Tools.Tests.Support;
///
/// A repository on the filesystem double for the clone gate: the solution file, the installed
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/FixtureLoaderTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Support/FixtureLoaderTests.cs
similarity index 91%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/Tests/FixtureLoaderTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Support/FixtureLoaderTests.cs
index c0af29b38..3093a39cd 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/FixtureLoaderTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Support/FixtureLoaderTests.cs
@@ -1,4 +1,4 @@
-namespace OpenCode.Sdk.Tools.Tests.Support.Tests;
+namespace OpenCode.Sdk.Tools.Tests.Support;
public sealed class FixtureLoaderTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/SessionScopedEventScenario.cs b/tests/OpenCode.Sdk.Tools.Tests/Support/SessionScopedEventScenario.cs
similarity index 97%
rename from tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/SessionScopedEventScenario.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Support/SessionScopedEventScenario.cs
index 3c695dbf8..6d5046f58 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Generator/Binding/Support/SessionScopedEventScenario.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Support/SessionScopedEventScenario.cs
@@ -1,8 +1,7 @@
using OpenCode.Sdk.Tools.Generator.Binding.Models;
-using OpenCode.Sdk.Tools.Tests.Support;
using static OpenCode.Sdk.Tools.Tests.Support.BindingScenarioData;
-namespace OpenCode.Sdk.Tools.Tests.Generator.Binding.Support;
+namespace OpenCode.Sdk.Tools.Tests.Support;
internal sealed class SessionScopedEventScenario(bool optionalPayload = false, bool nullablePayload = false) : SpecScenario
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecDocumentBuilderTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Support/SpecDocumentBuilderTests.cs
similarity index 99%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecDocumentBuilderTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Support/SpecDocumentBuilderTests.cs
index 7be8b3206..9ce27a826 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecDocumentBuilderTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Support/SpecDocumentBuilderTests.cs
@@ -1,6 +1,6 @@
using System.Text.Json.Nodes;
-namespace OpenCode.Sdk.Tools.Tests.Support.Tests;
+namespace OpenCode.Sdk.Tools.Tests.Support;
public sealed class SpecDocumentBuilderTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecScenarioTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Support/SpecScenarioTests.cs
similarity index 93%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecScenarioTests.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Support/SpecScenarioTests.cs
index a642b9695..afb1fa345 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/Tests/SpecScenarioTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Support/SpecScenarioTests.cs
@@ -1,4 +1,4 @@
-namespace OpenCode.Sdk.Tools.Tests.Support.Tests;
+namespace OpenCode.Sdk.Tools.Tests.Support;
public sealed class SpecScenarioTests
{
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Support/SuppressionInventorySession.cs b/tests/OpenCode.Sdk.Tools.Tests/Suppressions/Support/SuppressionInventorySession.cs
similarity index 90%
rename from tests/OpenCode.Sdk.Tools.Tests/Support/SuppressionInventorySession.cs
rename to tests/OpenCode.Sdk.Tools.Tests/Suppressions/Support/SuppressionInventorySession.cs
index 5227caba7..0c8a431d7 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Support/SuppressionInventorySession.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Suppressions/Support/SuppressionInventorySession.cs
@@ -1,9 +1,9 @@
using OpenCode.Sdk.Tools.Generator.Refresh;
-using OpenCode.Sdk.Tools.Tests.Suppressions;
+using OpenCode.Sdk.Tools.Tests.Support;
using Testably.Abstractions;
using TUnit.Core.Interfaces;
-namespace OpenCode.Sdk.Tools.Tests.Support;
+namespace OpenCode.Sdk.Tools.Tests.Suppressions.Support;
/// One completed suppression inventory shared by the repository's ledger checks.
public sealed class SuppressionInventorySession : IAsyncInitializer
diff --git a/tests/OpenCode.Sdk.Tools.Tests/Suppressions/SuppressionLedgerTests.cs b/tests/OpenCode.Sdk.Tools.Tests/Suppressions/SuppressionLedgerTests.cs
index f88a777ac..4864bf2e3 100644
--- a/tests/OpenCode.Sdk.Tools.Tests/Suppressions/SuppressionLedgerTests.cs
+++ b/tests/OpenCode.Sdk.Tools.Tests/Suppressions/SuppressionLedgerTests.cs
@@ -1,4 +1,4 @@
-using OpenCode.Sdk.Tools.Tests.Support;
+using OpenCode.Sdk.Tools.Tests.Suppressions.Support;
namespace OpenCode.Sdk.Tools.Tests.Suppressions;
diff --git a/tools/jscpd/tests.baseline.json b/tools/jscpd/tests.baseline.json
index 3d78de49d..5206c06cd 100644
--- a/tools/jscpd/tests.baseline.json
+++ b/tools/jscpd/tests.baseline.json
@@ -49,13 +49,11 @@
"0b1dd9528bf9f4d7": 1,
"0bb960006757fa5d": 2,
"0bf07eca2ad5d37a": 1,
- "0c15dec97c59fb17": 1,
"0c2d1ea4ed7d84e1": 1,
"0c4aa6cdd20ff426": 1,
"0c53a2dd00579986": 1,
"0c6ad1b72d1c5abd": 1,
"0cee267a64eb44dc": 1,
- "0cf42af2999e31cd": 1,
"0d1c1e62f027669f": 1,
"0d494a1b361ea0f6": 1,
"0d59c107c28482f6": 1,
@@ -71,7 +69,6 @@
"10079a42fa6bcc63": 1,
"1035e50fc18d0089": 1,
"10ae734f6c09cd4d": 1,
- "1100beac133cd38f": 1,
"113cc076f3fdaac2": 1,
"116939c0012f36db": 1,
"118f6000645c9441": 1,
@@ -96,6 +93,7 @@
"15f72a1f46f3211c": 1,
"163be34070c86587": 1,
"16581e5dac5d2421": 1,
+ "1690b7a95e7bd144": 1,
"171c27993e2f8380": 1,
"17537e2a94773132": 1,
"17afd763f5ece6aa": 1,
@@ -140,7 +138,6 @@
"23cd718bb6e4c88d": 1,
"24c472b27799aec8": 1,
"24cc85d24f0b3dfa": 1,
- "2531914c299e53b1": 1,
"2550fac4318fc198": 1,
"255c9c6d8752d5b1": 1,
"25868f84187d3eb9": 1,
@@ -175,6 +172,7 @@
"30e610be3b872197": 1,
"31079b601cabad85": 1,
"31148477ca176add": 1,
+ "316c88ba1c33f2f6": 1,
"325aedadc9c51610": 1,
"32a22f84426c274c": 1,
"32a53e20ee7c711b": 1,
@@ -182,7 +180,6 @@
"3355950d3f9e7432": 1,
"338595f92b8c9b2c": 1,
"33df1e6ccf3c7b58": 1,
- "3463d9e1e527cece": 1,
"34812987b8a4a722": 1,
"34ff66db689cfea4": 1,
"350995582d58fa70": 1,
@@ -200,6 +197,7 @@
"395bcea3b3a0f37b": 1,
"398acb076f4f809e": 1,
"39981a4a4d340082": 4,
+ "3a0f1ec3e9fe60fd": 1,
"3a31a52bec51fb1d": 1,
"3a87c8a45e85cc43": 1,
"3a8ac0fd2e0c79a7": 1,
@@ -208,6 +206,7 @@
"3b4ee00b9fd149f5": 1,
"3b689705df1d6d40": 1,
"3b71e78270640ef3": 1,
+ "3b80969d7bbd218d": 1,
"3bccb11c8653a298": 1,
"3c2589ff6b7d43c2": 1,
"3c605c52befef8a8": 1,
@@ -220,6 +219,7 @@
"3dd4aea62c719f68": 1,
"3dec5ec598cf3e79": 1,
"3e0f7db3f45db7c6": 1,
+ "3e1e031bdee019c0": 1,
"3e9867a4a9167f1f": 1,
"3ea15c33ef67187a": 1,
"3ec4901f46bad3c7": 1,
@@ -268,6 +268,7 @@
"4d2de034dda9bf4f": 1,
"4e8e100a6ddc1999": 1,
"4e9f7bbcbfcdf308": 1,
+ "4f1d7ca9fc7cb8a1": 1,
"4f710a4a54392633": 1,
"4fc9c4793f40d352": 1,
"4fcd608fb63e2796": 1,
@@ -290,6 +291,7 @@
"55cd410c4cf5d028": 1,
"55eef828cda64c6a": 1,
"561f3f3bf4df34b5": 1,
+ "56443aeee8cae5a9": 1,
"56446320884d2a6b": 1,
"567e66ef84568376": 2,
"573c75d83c9a3c95": 1,
@@ -317,6 +319,7 @@
"5d4b7662ce8a11ef": 1,
"5d5ef92942ea8a4b": 1,
"5dc4ace824586d3d": 1,
+ "5de8b3135599accb": 1,
"5e13371fd2b2249a": 1,
"5f5853703072392b": 1,
"5f76879862027b63": 1,
@@ -372,7 +375,6 @@
"6e7989c97054cdff": 1,
"6e9eaf302371cf8f": 1,
"6ea71ceab7b2e6bf": 1,
- "6eb6528258efdebb": 1,
"6ed8b7b89c38fd7f": 1,
"6ee3e67f6a10362e": 1,
"6eede9ab9fb16d7c": 1,
@@ -406,6 +408,7 @@
"766be0553c361cb9": 1,
"76c1f1da5348b1b2": 1,
"76d04a6e44d1a740": 1,
+ "772754f9118f1470": 1,
"774ec2e63be4fa1d": 1,
"776de12b3d238a95": 1,
"78811cccfbf1dfd6": 1,
@@ -468,13 +471,14 @@
"8990b0dcf557805f": 1,
"89b40759e47ca8db": 1,
"89da94f6e3a69c7d": 1,
+ "89e06bceac678f59": 1,
"8a2fbe60831c0ff1": 1,
"8a46989d4cc28dc2": 1,
"8a7412eb78a37817": 1,
"8a79ca5fee4584ac": 1,
"8a7e47959ada7043": 1,
"8adcbd3f74c61e25": 1,
- "8c4bb5cceeefd4a8": 1,
+ "8c76a737ad37e94d": 1,
"8d005dc72227f1cd": 1,
"8d130dcf8156d446": 1,
"8d45b44c776767ac": 1,
@@ -493,7 +497,9 @@
"90911bb723015f18": 1,
"90cc14a92e5c76ec": 1,
"90e2d0b4e68471be": 1,
+ "9105654fb7c0c495": 1,
"9111880caf330ba5": 1,
+ "91190df709318227": 1,
"911e3ae6c033fd79": 1,
"911eeaeb95a0cf3a": 1,
"9145cf3245018c5e": 1,
@@ -501,7 +507,6 @@
"91c00fd6f7cca2a1": 1,
"923328e81f42dd0a": 1,
"926d6280af25895e": 1,
- "929f55f8ba581bce": 1,
"92a23a8351ac6f5b": 1,
"92c51ace17ce9e06": 1,
"93ab56e01aefd998": 1,
@@ -509,12 +514,12 @@
"943a5cceaaa0085d": 1,
"94c3b038871234a4": 1,
"950d14b87d7527d0": 1,
+ "960ecaee5c550eb6": 1,
"9633562f85d5aa98": 1,
"9676160daa1042e5": 1,
"96af7cbd3e81daa0": 1,
"970216ae9df36cc1": 1,
"97067486c6a61874": 1,
- "971058de8c0c8c9c": 1,
"9720751d6958956a": 1,
"972157a5302e9a7e": 1,
"97413e8ff5b212d1": 1,
@@ -530,6 +535,7 @@
"99c1a94c67d2d719": 1,
"99f2726459c13b7e": 1,
"9a358c85f07b6c11": 1,
+ "9a4019c679ae6280": 1,
"9a6d3e40660da4b5": 1,
"9aaacc3995d7f2de": 1,
"9ab6ff5266fa89da": 1,
@@ -635,6 +641,7 @@
"bb134471f279fb9d": 1,
"bb76a81ecfad3368": 1,
"bb9c534e42d8fbec": 1,
+ "bba8be1e0fa009ff": 1,
"bc16db8fb010ac77": 1,
"bd2d26d72be60ab9": 1,
"bd433b802ec9b919": 1,
@@ -681,13 +688,13 @@
"ca23d20b55a208df": 1,
"ca52433f79ca9adf": 1,
"ca8b61da9bd303bb": 1,
+ "caf7fbf68e1f83c7": 1,
"cb72f4a5d460e4a8": 1,
"cbf3676e991f1146": 1,
"cc7e06ec26f04567": 1,
"ccafdf2207f06e4f": 1,
"ccb62a02a7741fc6": 1,
"ccc29e43c6a46325": 1,
- "ccd840dc525e7071": 1,
"cd14fbe400cc8d59": 1,
"cd3551439395039c": 1,
"cd6a8ec321617ad6": 1,
@@ -710,13 +717,13 @@
"d5292d9905239a48": 1,
"d5406444f0e7f864": 1,
"d5da8f87a5385041": 1,
- "d60b594d9e62ac1b": 1,
+ "d636f68e3053e298": 1,
+ "d69b4de90391c790": 1,
"d6a35efc223b35f0": 1,
"d6ea4ed36005aa7c": 1,
"d7269570eee5ec8e": 1,
"d74223b54c1e2a1b": 1,
"d7907d003a1d9fca": 1,
- "d828c60180ef992e": 1,
"d829295842cacb52": 1,
"d8472070574df3a0": 1,
"d8ad9bee4beede6f": 1,
@@ -734,11 +741,13 @@
"dee72b571774c9d5": 1,
"df712485fc9d33c5": 1,
"e10a301ceed50ace": 1,
+ "e12b03a527a3b800": 1,
"e17ab17b76a1e87f": 1,
+ "e1d701d217e9cdc3": 1,
"e1e2fd8c426ea2a9": 1,
"e22e40dfd5665fc6": 1,
"e241bd99b28fc221": 1,
- "e29bed776b56269c": 1,
+ "e2bf0010941bd9f0": 1,
"e2ee78e03bfc94f9": 1,
"e31e8d8bd1534204": 1,
"e373307cca6d534f": 1,
@@ -750,6 +759,7 @@
"e4c2843bfae3d310": 1,
"e53558b47dfffdd1": 1,
"e539609f53bb27d3": 1,
+ "e53cce564ffff951": 1,
"e6460fb624a61900": 1,
"e71da0387666d746": 1,
"e73051f32d6330a4": 1,
@@ -805,7 +815,6 @@
"f4ddf4ec5b71ff67": 1,
"f520e28c48e38582": 1,
"f55fe2c61cba9980": 1,
- "f56758856226c3e0": 1,
"f56fbb7ea258b2f9": 1,
"f5ec696c51e41367": 1,
"f60d80426156648c": 1,
@@ -818,17 +827,14 @@
"f92cfe72d5df13f4": 1,
"f97e3c6571c051bf": 1,
"f981c9a75c497712": 1,
- "f9efc7767fa1739f": 1,
"fa60d0adeedc899a": 1,
"fa68613b748df33b": 1,
"fa95919ffc6144c4": 1,
"fbac979cdba09e94": 1,
"fbc4c0c81f192238": 1,
- "fc2be7c22974caae": 1,
"fc541ae4aa953e03": 1,
"fd0c45c2afe9457e": 1,
"fd0d3c8ea8788bd8": 1,
- "fd504d6cdf7f46af": 1,
"fd70d83572dba2c6": 1,
"fe46afb759e6857f": 1,
"fe5072a2c05691e3": 1,