Seal public Protocol reference types to prevent external inheritance (#1232)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
This commit is contained in:
Copilot 2026-02-02 10:15:20 -05:00 • committed by GitHub
commit 712068b161
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 30 deletions

View file

@ -298,7 +298,7 @@ public class EnumSchemaTests
// Assert
Assert.NotNull(deserialized);
var result = Assert.IsType<ElicitRequestParams.EnumSchema>(deserialized);
var result = Assert.IsType<ElicitRequestParams.LegacyTitledEnumSchema>(deserialized);
Assert.Equal("string", result.Type);
Assert.Equal("Environment", result.Title);
Assert.Equal("Deployment environment", result.Description);
@ -309,10 +309,10 @@ public class EnumSchemaTests
}
[Fact]
public void EnumSchema_Serializes_Correctly()
public void LegacyTitledEnumSchema_Direct_Serializes_Correctly()
{
// Arrange
var schema = new ElicitRequestParams.EnumSchema
var schema = new ElicitRequestParams.LegacyTitledEnumSchema
{
Title = "Environment",
Description = "Deployment environment",
@ -327,7 +327,7 @@ public class EnumSchemaTests
// Assert
Assert.NotNull(deserialized);
var result = Assert.IsType<ElicitRequestParams.EnumSchema>(deserialized);
var result = Assert.IsType<ElicitRequestParams.LegacyTitledEnumSchema>(deserialized);
Assert.Equal("string", result.Type);
Assert.Equal("Environment", result.Title);
Assert.Equal("Deployment environment", result.Description);
@ -338,9 +338,9 @@ public class EnumSchemaTests
}
[Fact]
public void Enum_WithEnumNames_Deserializes_As_EnumSchema()
public void Enum_WithEnumNames_Deserializes_As_LegacyTitledEnumSchema()
{
// Arrange - JSON with enumNames should deserialize as (deprecated) EnumSchema
// Arrange - JSON with enumNames should deserialize as (deprecated) LegacyTitledEnumSchema
string json = """
{
"type": "string",
@ -356,7 +356,7 @@ public class EnumSchemaTests
// Assert
Assert.NotNull(deserialized);
var result = Assert.IsType<ElicitRequestParams.EnumSchema>(deserialized);
var result = Assert.IsType<ElicitRequestParams.LegacyTitledEnumSchema>(deserialized);
Assert.Equal("string", result.Type);
Assert.Equal("Environment", result.Title);
Assert.Equal("Deployment environment", result.Description);

View file

@ -283,7 +283,7 @@ public static class PrimitiveSchemaDefinitionTests
json,
McpJsonUtilities.DefaultOptions);
Assert.NotNull(result);
var enumSchema = Assert.IsType<ElicitRequestParams.EnumSchema>(result);
var enumSchema = Assert.IsType<ElicitRequestParams.LegacyTitledEnumSchema>(result);
Assert.Equal("string", enumSchema.Type);
Assert.Equal(2, enumSchema.Enum.Count);
Assert.Contains("option1", enumSchema.Enum);