Class ServiceExtensionRunnerTests
EditMode tests for CreateFromJson(string): spec parsing, enum-error
aggregation, the JSON report round trip, and the Catalog V2 extensionPointKind/extensionPointName
spec fields (including their back-compat coexistence with the legacy aggregate field).
ServiceExtensionSpec is internal to the runner's assembly, so specs are written here as plain JSON
text — exactly what a CLI caller would produce.
Inherited Members
Namespace: Serenity.ServiceExtensionCreator.Tests.Editor
Assembly: Serenity.ServiceExtensionCreator.Tests.Editor.dll
Syntax
public class ServiceExtensionRunnerTests : MetaFileRaceGuardedFixture
Constructors
ServiceExtensionRunnerTests()
Declaration
public ServiceExtensionRunnerTests()
Methods
CreateFromJson_AppendToPipelineProfileRequestedButAmbiguous_ReportsRequestedWithoutAppending()
Declaration
public void CreateFromJson_AppendToPipelineProfileRequestedButAmbiguous_ReportsRequestedWithoutAppending()
CreateFromJson_BothAggregateAndExtensionPointNameSet_ReturnsConflictError()
Declaration
public void CreateFromJson_BothAggregateAndExtensionPointNameSet_ReturnsConflictError()
CreateFromJson_InfrastructureFreshStyleSpec_ResolvesToTheEnumAndGeneratesUnderInfrastructure()
The newest ServiceExtensionCreator.Style member must resolve through the
same generic ResolveEnum parser as every other style value — no dedicated parsing code exists
per enum member, so this locks in that a spec naming it by string keeps working.
Declaration
public void CreateFromJson_InfrastructureFreshStyleSpec_ResolvesToTheEnumAndGeneratesUnderInfrastructure()
CreateFromJson_InvalidEnumValues_AggregatesEveryFieldError()
Declaration
public void CreateFromJson_InvalidEnumValues_AggregatesEveryFieldError()
CreateFromJson_LegacySpecWithoutExtensionPointFields_StillResolvesToServiceKind()
Declaration
public void CreateFromJson_LegacySpecWithoutExtensionPointFields_StillResolvesToServiceKind()
CreateFromJson_MalformedJson_ReturnsParseError()
Declaration
public void CreateFromJson_MalformedJson_ReturnsParseError()
CreateFromJson_MaliciousNamespaceOverride_IsRejected()
Declaration
public void CreateFromJson_MaliciousNamespaceOverride_IsRejected()
CreateFromJson_MissingJson_ReturnsError()
Declaration
public void CreateFromJson_MissingJson_ReturnsError()
CreateFromJson_StoreKindSpec_GeneratesStoreAndReportsBackendDefinitionAssetPath()
Declaration
public void CreateFromJson_StoreKindSpec_GeneratesStoreAndReportsBackendDefinitionAssetPath()
CreateFromJson_SubclassBaseTypeName_RoundTripsToBaseResolution()
The spec's subclassBaseTypeName flows through to base resolution: an explicit
canonical name resolves and generates, and an unknown name is rejected with the resolver's error.
A spec WITHOUT the field behaves exactly as V1 (canonical/first base) — pinned by
CreateFromJson_LegacySpecWithoutExtensionPointFields_StillResolvesToServiceKind plus the
engine-level back-compat test.
Declaration
public void CreateFromJson_SubclassBaseTypeName_RoundTripsToBaseResolution()
CreateFromJson_UnknownAggregate_ReturnsCreatorValidationError()
Declaration
public void CreateFromJson_UnknownAggregate_ReturnsCreatorValidationError()
CreateFromJson_UnknownSubclassBaseTypeName_ReturnsResolverError()
Declaration
public void CreateFromJson_UnknownSubclassBaseTypeName_ReturnsResolverError()
CreateFromJson_ValidSpec_CreatesTheServiceAndRoundTripsTheReport()
Declaration
public void CreateFromJson_ValidSpec_CreatesTheServiceAndRoundTripsTheReport()
Report_ToJson_ContainsSchemaVersion()
Declaration
public void Report_ToJson_ContainsSchemaVersion()
SetUp()
Declaration
public void SetUp()
TearDown()
Declaration
public void TearDown()