Skip to content

Commit

Permalink
Merge pull request #1776 from microsoft/vnext
Browse files Browse the repository at this point in the history
Master Refresh
  • Loading branch information
MaggieKimani1 authored Aug 9, 2024
2 parents ccd4a43 + c345fc7 commit 5842eff
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 55 deletions.
71 changes: 41 additions & 30 deletions .azure-pipelines/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,16 +78,18 @@ extends:
projects: '$(Build.SourcesDirectory)\Microsoft.OpenApi.sln'
arguments: '--configuration $(BuildConfiguration) --no-build'

- task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning'
- task: EsrpCodeSigning@5
inputs:
ConnectedServiceName: 'microsoftgraph ESRP CodeSign DLL and NuGet (AKV)'
FolderPath: src
signConfigType: inlineSignParams
ConnectedServiceName: 'Federated DevX ESRP Managed Identity Connection'
AppRegistrationClientId: '65035b7f-7357-4f29-bf25-c5ee5c3949f8'
AppRegistrationTenantId: 'cdc5aeea-15c5-4db6-b079-fcadd2505dc2'
AuthAKVName: 'akv-prod-eastus'
AuthCertName: 'ReferenceLibraryPrivateCert'
AuthSignCertName: 'ReferencePackagePublisherCertificate'
FolderPath: '$(Build.SourcesDirectory)\src'
Pattern: '*.dll'
UseMinimatch: true
Pattern: |
**\*.exe
**\*.dll
signConfigType: 'inlineSignParams'
inlineOperation: |
[
{
Expand Down Expand Up @@ -126,7 +128,10 @@ extends:
"toolVersion": "1.0"
}
]
SessionTimeout: 20
SessionTimeout: '20'
MaxConcurrency: '50'
MaxRetryAttempts: '5'
PendingAnalysisWaitTimeoutMinutes: '5'

# Pack core lib
- pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi/Microsoft.OpenApi.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg
Expand All @@ -140,32 +145,38 @@ extends:
- pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg
displayName: 'pack Hidi'

- task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning Nuget Packages'
- task: EsrpCodeSigning@5
inputs:
ConnectedServiceName: 'microsoftgraph ESRP CodeSign DLL and NuGet (AKV)'
ConnectedServiceName: 'Federated DevX ESRP Managed Identity Connection'
AppRegistrationClientId: '65035b7f-7357-4f29-bf25-c5ee5c3949f8'
AppRegistrationTenantId: 'cdc5aeea-15c5-4db6-b079-fcadd2505dc2'
AuthAKVName: 'akv-prod-eastus'
AuthCertName: 'ReferenceLibraryPrivateCert'
AuthSignCertName: 'ReferencePackagePublisherCertificate'
FolderPath: '$(Build.ArtifactStagingDirectory)'
Pattern: '*.nupkg'
signConfigType: inlineSignParams
UseMinimatch: true
signConfigType: 'inlineSignParams'
inlineOperation: |
[
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetSign",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 20
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetSign",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: '60'
MaxConcurrency: '50'
MaxRetryAttempts: '5'
PendingAnalysisWaitTimeoutMinutes: '5'

- task: PowerShell@2
displayName: "Get Hidi's version-number from .csproj"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.6.17</Version>
<Version>1.6.18</Version>
<Description>OpenAPI.NET Readers for JSON and YAML documents</Description>
<SignAssembly>true</SignAssembly>
<!-- https://github.com/dotnet/sourcelink/blob/main/docs/README.md#embeduntrackedsources -->
Expand Down
2 changes: 1 addition & 1 deletion src/Microsoft.OpenApi/Microsoft.OpenApi.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>Latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.6.17</Version>
<Version>1.6.18</Version>
<Description>.NET models with JSON and YAML writers for OpenAPI specification</Description>
<SignAssembly>true</SignAssembly>
<!-- https://github.com/dotnet/sourcelink/blob/main/docs/README.md#embeduntrackedsources -->
Expand Down
5 changes: 4 additions & 1 deletion src/Microsoft.OpenApi/Models/OpenApiMediaType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ public void SerializeAsV3(IOpenApiWriter writer)
writer.WriteOptionalObject(OpenApiConstants.Example, Example, (w, e) => w.WriteAny(e));

// examples
SerializeExamples(writer, Examples);
if (Examples != null && Examples.Any())
{
SerializeExamples(writer, Examples);
}

// encoding
writer.WriteOptionalMap(OpenApiConstants.Encoding, Encoding, (w, e) => e.SerializeAsV3(w));
Expand Down
57 changes: 35 additions & 22 deletions test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
Expand Down Expand Up @@ -1670,27 +1671,6 @@ private static OpenApiDocument ParseInputFile(string filePath)
return openApiDoc;
}

//[Fact]
//public void CopyConstructorForAdvancedDocumentWorks()
//{
// // Arrange & Act
// var doc = new OpenApiDocument(AdvancedDocument);

// var docOpId = doc.Paths["/pets"].Operations[OperationType.Get].OperationId = "findAllMyPets";
// var advancedDocOpId = AdvancedDocument.Paths["/pets"].Operations[OperationType.Get].OperationId;
// var responseSchemaTypeCopy = doc.Paths["/pets"].Operations[OperationType.Get].Responses["200"].Content["application/json"].Schema.Type = "object";
// var advancedDocResponseSchemaType = AdvancedDocument.Paths["/pets"].Operations[OperationType.Get].Responses["200"].Content["application/json"].Schema.Type;

// // Assert
// Assert.NotNull(doc.Info);
// Assert.NotNull(doc.Servers);
// Assert.NotNull(doc.Paths);
// Assert.Equal(2, doc.Paths.Count);
// Assert.NotNull(doc.Components);
// Assert.NotEqual(docOpId, advancedDocOpId);
// Assert.NotEqual(responseSchemaTypeCopy, advancedDocResponseSchemaType);
//}

[Fact]
public void SerializeV2DocumentWithNonArraySchemaTypeDoesNotWriteOutCollectionFormat()
{
Expand Down Expand Up @@ -1858,5 +1838,38 @@ public void OpenApiDocumentCopyConstructorWithAnnotationsSucceeds()

Assert.NotEqual(baseDocument.Annotations["key1"], actualDocument.Annotations["key1"]);
}
}

[Fact]
public void SerializeExamplesDoesNotThrowNullReferenceException()
{
OpenApiDocument doc = new OpenApiDocument
{
Paths = new OpenApiPaths
{
["test"] = new OpenApiPathItem()
{
Operations = new Dictionary<OperationType, OpenApiOperation>()
{
[OperationType.Post] = new OpenApiOperation
{
RequestBody = new OpenApiRequestBody()
{
Content =
{
["application/json"] = new OpenApiMediaType()
{
Examples = null,
},
}
}
},
}
},
}
};

OpenApiJsonWriter apiWriter = new OpenApiJsonWriter(new StringWriter());
doc.Invoking(d => d.SerializeAsV3(apiWriter)).Should().NotThrow();
}
}
}

0 comments on commit 5842eff

Please sign in to comment.