Skip to content

Commit 321c0e8

Browse files
Fix json schema for update sdk details input so serialization does no… (#11957)
* Fix json serialization for update sdk details input due to different casing
1 parent 202c3e9 commit 321c0e8

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

tools/azsdk-cli/Azure.Sdk.Tools.Cli.Tests/Tools/ReleasePlanToolTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,5 +178,17 @@ public async Task Test_Create_releasePlan_with_AZSDKTOOLS_AGENT_TESTING_false_re
178178
// Verify the environment helper was called
179179
environmentHelperMock.Verify(x => x.GetBooleanVariable("AZSDKTOOLS_AGENT_TESTING", false), Times.Once);
180180
}
181+
182+
[Test]
183+
public async Task Test_Update_SDK_Details_In_Release_Plan()
184+
{
185+
string sdkDetails = "[{\"language\":\".NET\",\"packageName\":\"Azure.ResourceManager.Contoso\"},{\"language\":\"Python\",\"packageName\":\"azure-mgmt-contoso\"},{\"language\":\"Java\",\"packageName\":\"com.azure.resourcemanager.contoso\"},{\"language\":\"JavaScript\",\"packageName\":\"@azure/arm-contoso\"},{\"language\":\"Go\",\"packageName\":\"sdk/resourcemanager/contoso/armcontoso\"}]";
186+
var updateStatus = await releasePlanTool.UpdateSDKDetailsInReleasePlan(100, sdkDetails);
187+
Assert.True(updateStatus.Contains("Updated SDK details in release plan"));
188+
189+
sdkDetails = "[{\"Language\":\".NET\",\"PackageName\":\"Azure.ResourceManager.Contoso\"},{\"language\":\"Python\",\"packageName\":\"azure-mgmt-contoso\"},{\"language\":\"Java\",\"packageName\":\"com.azure.resourcemanager.contoso\"},{\"language\":\"JavaScript\",\"packageName\":\"@azure/arm-contoso\"},{\"language\":\"Go\",\"packageName\":\"sdk/resourcemanager/contoso/armcontoso\"}]";
190+
updateStatus = await releasePlanTool.UpdateSDKDetailsInReleasePlan(100, sdkDetails);
191+
Assert.True(updateStatus.Contains("Updated SDK details in release plan"));
192+
}
181193
}
182194
}

tools/azsdk-cli/Azure.Sdk.Tools.Cli/Tools/ReleasePlan/ReleasePlanTool.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,11 +297,14 @@ public async Task<string> UpdateSDKDetailsInReleasePlan(int releasePlanWorkItemI
297297
{
298298
return "No SDK information provided to update the release plan.";
299299
}
300-
301300
logger.LogInformation($"Updating SDK details in release plan work item ID: {releasePlanWorkItemId}");
302301
logger.LogDebug($"SDK details to update: {sdkDetails}");
303302
// Fix for CS8600: Ensure sdkDetails is not null before deserialization
304-
List<SDKInfo>? SdkInfos = JsonSerializer.Deserialize<List<SDKInfo>>(sdkDetails);
303+
var options = new JsonSerializerOptions
304+
{
305+
PropertyNameCaseInsensitive = true
306+
};
307+
List<SDKInfo>? SdkInfos = JsonSerializer.Deserialize<List<SDKInfo>>(sdkDetails, options);
305308
if (SdkInfos == null)
306309
{
307310
return "Failed to deserialize SDK details.";

0 commit comments

Comments
 (0)