From d8c6978127675f0e54d95d00f1de892955cccefb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 23:03:53 +0000 Subject: [PATCH 1/9] Initial plan From e801e73263cc1fcf2fe249903a95218fd556d27f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 23:20:27 +0000 Subject: [PATCH 2/9] Add Content-Type null check for optional body parameters Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../src/Providers/RestClientProvider.cs | 15 +++++- .../RestClientProviderTests.cs | 51 +++++++++++++++++++ 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs index 43c3dabf62c..66b9b7fc4b8 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs @@ -259,7 +259,11 @@ private MethodBodyStatements BuildMessage( } else { - statements.AddRange(AppendHeaderParameters(request, operation, paramMap)); + var contentParam = signature.Parameters.FirstOrDefault( + p => ReferenceEquals(p, ScmKnownParameters.RequestContent) || + ReferenceEquals(p, ScmKnownParameters.OptionalRequestContent) || + ReferenceEquals(p, ScmKnownParameters.NullableRequiredRequestContent)); + statements.AddRange(AppendHeaderParameters(request, operation, paramMap, contentParam: contentParam)); statements.AddRange(GetSetContent(request, signature.Parameters)); } @@ -377,7 +381,7 @@ private PropertyProvider GetClassifier(InputOperation operation) throw new InvalidOperationException($"Unexpected status codes for operation {operation.Name}"); } - private IEnumerable AppendHeaderParameters(HttpRequestApi request, InputOperation operation, Dictionary paramMap, bool isNextLink = false) + private IEnumerable AppendHeaderParameters(HttpRequestApi request, InputOperation operation, Dictionary paramMap, bool isNextLink = false, ParameterProvider? contentParam = null) { List statements = new(operation.Parameters.Count); @@ -425,6 +429,13 @@ private IEnumerable AppendHeaderParameters(HttpRequestApi r { statement = BuildQueryOrHeaderOrPathParameterNullCheck(type, valueExpression, statement); } + // If this is a Content-Type header and there's an optional content parameter, wrap in content null check + else if (inputHeaderParameter.IsContentType && contentParam != null && + (ReferenceEquals(contentParam, ScmKnownParameters.OptionalRequestContent) || + ReferenceEquals(contentParam, ScmKnownParameters.NullableRequiredRequestContent))) + { + statement = new IfStatement(((ValueExpression)contentParam).NotEqual(Null)) { statement }; + } statements.Add(statement); } diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index b4db3c2dd8d..c31a43ffb85 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1492,5 +1492,56 @@ public void TestApiVersionParameterReinjectedInCreateNextRequestMethod() Assert.That(file.Content, Contains.Substring("api-version")); Assert.That(file.Content, Contains.Substring("maxpagesize")); } + + [Test] + public void ContentTypeHeaderWrappedInNullCheckWhenContentIsOptional() + { + // Test that when there's an optional body parameter with a Content-Type header, + // the Content-Type header setting is wrapped in a null check for the content parameter + var contentTypeParam = InputFactory.HeaderParameter( + "Content-Type", + InputFactory.Literal.String("application/json"), + isRequired: true, + isContentType: true, + scope: InputParameterScope.Constant); + var bodyParam = InputFactory.BodyParameter( + "body", + InputPrimitiveType.String, + isRequired: false); + var operation = InputFactory.Operation( + "TestOperation", + requestMediaTypes: ["application/json"], + parameters: [contentTypeParam, bodyParam]); + var inputServiceMethod = InputFactory.BasicServiceMethod("Test", operation); + var inputClient = InputFactory.Client("TestClient", methods: [inputServiceMethod]); + MockHelpers.LoadMockGenerator(clients: () => [inputClient]); + + var client = ScmCodeModelGenerator.Instance.TypeFactory.CreateClient(inputClient); + Assert.IsNotNull(client); + + var restClient = client!.RestClient; + Assert.IsNotNull(restClient); + + var createMethod = restClient.Methods.FirstOrDefault(m => m.Signature.Name == "CreateTestOperationRequest"); + Assert.IsNotNull(createMethod); + + var statements = createMethod!.BodyStatements as MethodBodyStatements; + Assert.IsNotNull(statements); + + // Debug: print all statements + Console.WriteLine("All statements:"); + foreach (var stmt in statements!) + { + Console.WriteLine($" {stmt.ToDisplayString()}"); + } + + var contentTypeStatement = statements!.FirstOrDefault(s => + s.ToDisplayString().Contains("Content-Type") && + s.ToDisplayString().Contains("if")); + + Assert.IsNotNull(contentTypeStatement, "Content-Type header should be wrapped in a null check"); + Assert.IsTrue(contentTypeStatement!.ToDisplayString().Contains("if (content != null)"), + $"Content-Type should be wrapped in 'if (content != null)', but got: {contentTypeStatement.ToDisplayString()}"); + } } } From d3f44ddc63cc97911d12aeebced67c8e9a1302cb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 23:25:04 +0000 Subject: [PATCH 3/9] Fix Content-Type header to check for null content Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../src/Providers/RestClientProvider.cs | 11 +++-------- .../RestClientProviders/RestClientProviderTests.cs | 13 +++---------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs index 66b9b7fc4b8..ef813f6dfe2 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs @@ -259,10 +259,7 @@ private MethodBodyStatements BuildMessage( } else { - var contentParam = signature.Parameters.FirstOrDefault( - p => ReferenceEquals(p, ScmKnownParameters.RequestContent) || - ReferenceEquals(p, ScmKnownParameters.OptionalRequestContent) || - ReferenceEquals(p, ScmKnownParameters.NullableRequiredRequestContent)); + var contentParam = signature.Parameters.FirstOrDefault(p => p.Name == "content" && p.Location == ParameterLocation.Body); statements.AddRange(AppendHeaderParameters(request, operation, paramMap, contentParam: contentParam)); statements.AddRange(GetSetContent(request, signature.Parameters)); } @@ -429,10 +426,8 @@ private IEnumerable AppendHeaderParameters(HttpRequestApi r { statement = BuildQueryOrHeaderOrPathParameterNullCheck(type, valueExpression, statement); } - // If this is a Content-Type header and there's an optional content parameter, wrap in content null check - else if (inputHeaderParameter.IsContentType && contentParam != null && - (ReferenceEquals(contentParam, ScmKnownParameters.OptionalRequestContent) || - ReferenceEquals(contentParam, ScmKnownParameters.NullableRequiredRequestContent))) + // If this is a Content-Type header and there's a content parameter (which could be null), wrap in content null check + else if (inputHeaderParameter.IsContentType && contentParam != null) { statement = new IfStatement(((ValueExpression)contentParam).NotEqual(Null)) { statement }; } diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index c31a43ffb85..9a453fe23fa 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1523,25 +1523,18 @@ public void ContentTypeHeaderWrappedInNullCheckWhenContentIsOptional() Assert.IsNotNull(restClient); var createMethod = restClient.Methods.FirstOrDefault(m => m.Signature.Name == "CreateTestOperationRequest"); - Assert.IsNotNull(createMethod); + Assert.IsNotNull(createMethod, "CreateTestOperationRequest method not found"); var statements = createMethod!.BodyStatements as MethodBodyStatements; Assert.IsNotNull(statements); - // Debug: print all statements - Console.WriteLine("All statements:"); - foreach (var stmt in statements!) - { - Console.WriteLine($" {stmt.ToDisplayString()}"); - } - var contentTypeStatement = statements!.FirstOrDefault(s => s.ToDisplayString().Contains("Content-Type") && s.ToDisplayString().Contains("if")); Assert.IsNotNull(contentTypeStatement, "Content-Type header should be wrapped in a null check"); - Assert.IsTrue(contentTypeStatement!.ToDisplayString().Contains("if (content != null)"), - $"Content-Type should be wrapped in 'if (content != null)', but got: {contentTypeStatement.ToDisplayString()}"); + Assert.IsTrue(contentTypeStatement!.ToDisplayString().Contains("content != null"), + $"Content-Type should be wrapped in 'content != null', but got: {contentTypeStatement.ToDisplayString()}"); } } } From b3c2ee8c2a5c0e0519970e94cf10afa025d70910 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 23:35:48 +0000 Subject: [PATCH 4/9] Remove unnecessary cast to ValueExpression Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../src/Providers/RestClientProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs index ef813f6dfe2..61a7dee8ca9 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs @@ -429,7 +429,7 @@ private IEnumerable AppendHeaderParameters(HttpRequestApi r // If this is a Content-Type header and there's a content parameter (which could be null), wrap in content null check else if (inputHeaderParameter.IsContentType && contentParam != null) { - statement = new IfStatement(((ValueExpression)contentParam).NotEqual(Null)) { statement }; + statement = new IfStatement(contentParam.NotEqual(Null)) { statement }; } statements.Add(statement); From db7dc777fbf0bd8e7dee51a4399aadcdbc420c49 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 23:39:36 +0000 Subject: [PATCH 5/9] Use full statement in test assertion Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../RestClientProviderTests.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index 9a453fe23fa..0845b451994 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1528,13 +1528,14 @@ public void ContentTypeHeaderWrappedInNullCheckWhenContentIsOptional() var statements = createMethod!.BodyStatements as MethodBodyStatements; Assert.IsNotNull(statements); - var contentTypeStatement = statements!.FirstOrDefault(s => - s.ToDisplayString().Contains("Content-Type") && - s.ToDisplayString().Contains("if")); - - Assert.IsNotNull(contentTypeStatement, "Content-Type header should be wrapped in a null check"); - Assert.IsTrue(contentTypeStatement!.ToDisplayString().Contains("content != null"), - $"Content-Type should be wrapped in 'content != null', but got: {contentTypeStatement.ToDisplayString()}"); + var expectedStatement = @"if ((content != null)) +{ + request.Headers.Set(""Content-Type"", ""application/json""); +} +"; + var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); + Assert.IsTrue(statements!.Any(s => s.ToDisplayString() == expectedStatement), + $"Expected to find statement:\n{expectedStatement}\nBut got statements:\n{statementsString}"); } } } From 7901a9b3a1e378fe623b93ade420d14f53d99584 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:40:04 +0000 Subject: [PATCH 6/9] Restrict Content-Type null check to optional body parameters only Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../src/Providers/RestClientProvider.cs | 11 ++++- .../RestClientProviderTests.cs | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs index 61a7dee8ca9..978ed619332 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/src/Providers/RestClientProvider.cs @@ -426,10 +426,17 @@ private IEnumerable AppendHeaderParameters(HttpRequestApi r { statement = BuildQueryOrHeaderOrPathParameterNullCheck(type, valueExpression, statement); } - // If this is a Content-Type header and there's a content parameter (which could be null), wrap in content null check + // If this is a Content-Type header and there's an optional content parameter, wrap in content null check else if (inputHeaderParameter.IsContentType && contentParam != null) { - statement = new IfStatement(contentParam.NotEqual(Null)) { statement }; + // Check if any body parameter in the operation is optional + var hasOptionalBody = operation.Parameters.Any(p => + p is InputBodyParameter bodyParam && !bodyParam.IsRequired); + + if (hasOptionalBody) + { + statement = new IfStatement(contentParam.NotEqual(Null)) { statement }; + } } statements.Add(statement); diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index 0845b451994..3d75d33d3ce 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1532,6 +1532,48 @@ public void ContentTypeHeaderWrappedInNullCheckWhenContentIsOptional() { request.Headers.Set(""Content-Type"", ""application/json""); } +"; + var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); + Assert.IsTrue(statements!.Any(s => s.ToDisplayString() == expectedStatement), + $"Expected to find statement:\n{expectedStatement}\nBut got statements:\n{statementsString}"); + } + + [Test] + public void ContentTypeHeaderNotWrappedInNullCheckWhenContentIsRequired() + { + // Test that when there's a required body parameter with a Content-Type header, + // the Content-Type header setting is NOT wrapped in a null check + var contentTypeParam = InputFactory.HeaderParameter( + "Content-Type", + InputFactory.Literal.String("application/json"), + isRequired: true, + isContentType: true, + scope: InputParameterScope.Constant); + var bodyParam = InputFactory.BodyParameter( + "body", + InputPrimitiveType.String, + isRequired: true); + var operation = InputFactory.Operation( + "TestOperation", + requestMediaTypes: ["application/json"], + parameters: [contentTypeParam, bodyParam]); + var inputServiceMethod = InputFactory.BasicServiceMethod("Test", operation); + var inputClient = InputFactory.Client("TestClient", methods: [inputServiceMethod]); + MockHelpers.LoadMockGenerator(clients: () => [inputClient]); + + var client = ScmCodeModelGenerator.Instance.TypeFactory.CreateClient(inputClient); + Assert.IsNotNull(client); + + var restClient = client!.RestClient; + Assert.IsNotNull(restClient); + + var createMethod = restClient.Methods.FirstOrDefault(m => m.Signature.Name == "CreateTestOperationRequest"); + Assert.IsNotNull(createMethod, "CreateTestOperationRequest method not found"); + + var statements = createMethod!.BodyStatements as MethodBodyStatements; + Assert.IsNotNull(statements); + + var expectedStatement = @"request.Headers.Set(""Content-Type"", ""application/json""); "; var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); Assert.IsTrue(statements!.Any(s => s.ToDisplayString() == expectedStatement), From 457f6872e541e0821e830fed6dd6847e1e81bf46 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:47:25 +0000 Subject: [PATCH 7/9] Add assertion to verify no if statement wraps Content-Type for required body Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../RestClientProviders/RestClientProviderTests.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index 3d75d33d3ce..68645c07069 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1578,6 +1578,13 @@ public void ContentTypeHeaderNotWrappedInNullCheckWhenContentIsRequired() var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); Assert.IsTrue(statements!.Any(s => s.ToDisplayString() == expectedStatement), $"Expected to find statement:\n{expectedStatement}\nBut got statements:\n{statementsString}"); + + // Verify there's no if statement wrapping the Content-Type header + var hasIfWrappedContentType = statements!.Any(s => + s.ToDisplayString().Contains("if") && + s.ToDisplayString().Contains("Content-Type")); + Assert.IsFalse(hasIfWrappedContentType, + $"Content-Type should NOT be wrapped in an if statement for required content, but found:\n{statementsString}"); } } } From 8b22a0851a9f72cd8234cc987343ed68eccd1f0b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:51:59 +0000 Subject: [PATCH 8/9] Simplify test assertion to check for full if condition Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../RestClientProviders/RestClientProviderTests.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index 68645c07069..a1e1003f85f 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1580,9 +1580,12 @@ public void ContentTypeHeaderNotWrappedInNullCheckWhenContentIsRequired() $"Expected to find statement:\n{expectedStatement}\nBut got statements:\n{statementsString}"); // Verify there's no if statement wrapping the Content-Type header - var hasIfWrappedContentType = statements!.Any(s => - s.ToDisplayString().Contains("if") && - s.ToDisplayString().Contains("Content-Type")); + var wrappedStatement = @"if ((content != null)) +{ + request.Headers.Set(""Content-Type"", ""application/json""); +} +"; + var hasIfWrappedContentType = statements!.Any(s => s.ToDisplayString().Contains(wrappedStatement)); Assert.IsFalse(hasIfWrappedContentType, $"Content-Type should NOT be wrapped in an if statement for required content, but found:\n{statementsString}"); } From 99f968964aeef7153c48e2386156525576e86503 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 00:57:45 +0000 Subject: [PATCH 9/9] Remove redundant assertion checking for unwrapped statement Co-authored-by: JoshLove-msft <54595583+JoshLove-msft@users.noreply.github.com> --- .../RestClientProviders/RestClientProviderTests.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs index a1e1003f85f..ba39f3a8488 100644 --- a/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs +++ b/packages/http-client-csharp/generator/Microsoft.TypeSpec.Generator.ClientModel/test/Providers/RestClientProviders/RestClientProviderTests.cs @@ -1573,18 +1573,13 @@ public void ContentTypeHeaderNotWrappedInNullCheckWhenContentIsRequired() var statements = createMethod!.BodyStatements as MethodBodyStatements; Assert.IsNotNull(statements); - var expectedStatement = @"request.Headers.Set(""Content-Type"", ""application/json""); -"; - var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); - Assert.IsTrue(statements!.Any(s => s.ToDisplayString() == expectedStatement), - $"Expected to find statement:\n{expectedStatement}\nBut got statements:\n{statementsString}"); - // Verify there's no if statement wrapping the Content-Type header var wrappedStatement = @"if ((content != null)) { request.Headers.Set(""Content-Type"", ""application/json""); } "; + var statementsString = string.Join("\n", statements!.Select(s => s.ToDisplayString())); var hasIfWrappedContentType = statements!.Any(s => s.ToDisplayString().Contains(wrappedStatement)); Assert.IsFalse(hasIfWrappedContentType, $"Content-Type should NOT be wrapped in an if statement for required content, but found:\n{statementsString}");