Skip to content

Commit b9de516

Browse files
chore: pull main into vnext (#181)
Co-authored-by: lego-10-01-06[bot] <119427331+lego-10-01-06[bot]@users.noreply.github.com>
1 parent 3355ac9 commit b9de516

File tree

13 files changed

+73
-28
lines changed

13 files changed

+73
-28
lines changed

.github/workflows/release-internal.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
name: Publish beta NuGet package
22
on:
3-
push:
4-
branches: [ main ]
5-
paths:
6-
- 'src/LEGO.AsyncAPI/**'
7-
- 'src/LEGO.AsyncAPI.Readers/**'
8-
- 'src/LEGO.AsyncAPI.Bindings/**'
9-
- ".github/workflows/release-internal.yml"
10-
- '!**/*.md'
113
workflow_dispatch:
124

135
jobs:

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## [5.2.1](https://github.com/LEGO/AsyncAPI.NET/compare/v5.2.0...v5.2.1) (2024-06-12)
2+
3+
4+
### Bug Fixes
5+
6+
* inline channel parameters should not deserialize as references ([#172](https://github.com/LEGO/AsyncAPI.NET/issues/172)) ([7fd3af0](https://github.com/LEGO/AsyncAPI.NET/commit/7fd3af0e6669d18e805e0bab9cafac819ea64c1d))
7+
18
# [5.2.0](https://github.com/LEGO/AsyncAPI.NET/compare/v5.1.1...v5.2.0) (2024-03-30)
29

310

Common.Build.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,12 @@
99
<PackageReadmeFile>README.md</PackageReadmeFile>
1010
<RepositoryUrl>https://github.com/LEGO/AsyncAPI.NET</RepositoryUrl>
1111
<PackageTags>asyncapi .net openapi documentation</PackageTags>
12+
<PackageIcon>logo.png</PackageIcon>
13+
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
1214
</PropertyGroup>
15+
<ItemGroup>
16+
<None Include="..\..\media\logo.png" Pack="true" PackagePath="\" />
17+
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
18+
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="\" />
19+
</ItemGroup>
1320
</Project>

LICENSE renamed to LICENSE.txt

File renamed without changes.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ The AsyncAPI.NET SDK contains a useful object model for the AsyncAPI specificati
1515
Install the NuGet packages:
1616
### AsyncAPI.NET
1717
[![Nuget](https://img.shields.io/nuget/v/AsyncAPI.NET?label=AsyncAPI.NET&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET/)
18-
[![Nuget](https://img.shields.io/nuget/vpre/AsyncAPI.NET?label=AsyncAPI.NET&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET/)
18+
[![Nuget](https://img.shields.io/nuget/vpre/AsyncAPI.NET?label=AsyncAPI.NET-Preview&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET/)
1919

2020
### AsyncAPI.Readers
2121
[![Nuget](https://img.shields.io/nuget/v/AsyncAPI.NET.Readers?label=AsyncAPI.Readers&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET.Readers/)
22-
[![Nuget](https://img.shields.io/nuget/vpre/AsyncAPI.NET.Readers?label=AsyncAPI.Readers&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET.Readers/)
22+
[![Nuget](https://img.shields.io/nuget/vpre/AsyncAPI.NET.Readers?label=AsyncAPI.Readers-Preview&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET.Readers/)
2323

2424
### AsyncAPI.Bindings
2525
[![Nuget](https://img.shields.io/nuget/v/AsyncAPI.NET.Bindings?label=AsyncAPI.Bindings&style=for-the-badge)](https://www.nuget.org/packages/AsyncAPI.NET.Bindings/)

media/logo.png

7.79 KB
Loading

src/LEGO.AsyncAPI.Bindings/LEGO.AsyncAPI.Bindings.csproj

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@
2020
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2121
</PackageReference>
2222
</ItemGroup>
23-
<ItemGroup>
24-
<None Include="..\..\README.md">
25-
<Pack>True</Pack>
26-
<PackagePath>\</PackagePath>
27-
</None>
28-
</ItemGroup>
23+
2924
<ItemGroup>
3025
<ProjectReference Include="..\LEGO.AsyncAPI.Readers\LEGO.AsyncAPI.Readers.csproj" />
3126
<ProjectReference Include="..\LEGO.AsyncAPI\LEGO.AsyncAPI.csproj" />

src/LEGO.AsyncAPI.Readers/LEGO.AsyncAPI.Readers.csproj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@
2727
<ItemGroup>
2828
<InternalsVisibleTo Include="LEGO.AsyncAPI.Tests" />
2929
</ItemGroup>
30-
<ItemGroup>
31-
<None Include="..\..\README.md">
32-
<Pack>True</Pack>
33-
<PackagePath>\</PackagePath>
34-
</None>
35-
</ItemGroup>
3630

3731
<ItemGroup>
3832
<ProjectReference Include="..\LEGO.AsyncAPI\LEGO.AsyncAPI.csproj" />

src/LEGO.AsyncAPI.Readers/V2/AsyncApiChannelDeserializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal static partial class AsyncApiV2Deserializer
1414
{ "servers", (a, n) => { a.Servers = n.CreateSimpleList(s => s.GetScalarValue()); } },
1515
{ "subscribe", (a, n) => { a.Subscribe = LoadOperation(n); } },
1616
{ "publish", (a, n) => { a.Publish = LoadOperation(n); } },
17-
{ "parameters", (a, n) => { a.Parameters = n.CreateMapWithReference(ReferenceType.Parameter, LoadParameter); } },
17+
{ "parameters", (a, n) => { a.Parameters = n.CreateMap(LoadParameter); } },
1818
{ "bindings", (a, n) => { a.Bindings = LoadChannelBindings(n); } },
1919
};
2020

src/LEGO.AsyncAPI/LEGO.AsyncAPI.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
</AssemblyAttribute>
2727
</ItemGroup>
2828

29-
<ItemGroup>
30-
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
31-
</ItemGroup>
32-
3329
<ItemGroup>
3430
<InternalsVisibleTo Include="LEGO.AsyncAPI.Tests" />
3531
</ItemGroup>

src/LEGO.AsyncAPI/Services/AsyncApiReferenceResolver.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,13 @@ private T ResolveReference<T>(AsyncApiReference reference)
225225

226226
try
227227
{
228-
return this.currentDocument.ResolveReference(reference) as T;
228+
var resolvedReference = this.currentDocument.ResolveReference(reference) as T;
229+
if (resolvedReference == null)
230+
{
231+
throw new AsyncApiException($"Cannot resolve reference '{reference.Reference}' to '{typeof(T).Name}'.");
232+
}
233+
234+
return resolvedReference;
229235
}
230236
catch (AsyncApiException ex)
231237
{

test/LEGO.AsyncAPI.Tests/AsyncApiReaderTests.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace LEGO.AsyncAPI.Tests
55
using System;
66
using System.Collections.Generic;
77
using System.Linq;
8+
using System.Text.Json.Nodes;
89
using FluentAssertions;
910
using LEGO.AsyncAPI.Exceptions;
1011
using LEGO.AsyncAPI.Models;
@@ -428,6 +429,32 @@ public void Read_WithBasicPlusSecuritySchemeDeserializes()
428429
Assert.AreEqual("Provide your username and password for SASL/SCRAM authentication", scheme.Value.Description);
429430
}
430431

432+
[Test]
433+
public void Read_WithWrongReference_AddsError()
434+
{
435+
var yaml =
436+
"""
437+
asyncapi: 2.3.0
438+
info:
439+
title: test
440+
version: 1.0.0
441+
channels:
442+
workspace:
443+
publish:
444+
message:
445+
$ref: '#/components/securitySchemes/saslScram'
446+
components:
447+
securitySchemes:
448+
saslScram:
449+
type: scramSha256
450+
description: Provide your username and password for SASL/SCRAM authentication
451+
""";
452+
var reader = new AsyncApiStringReader();
453+
var doc = reader.Read(yaml, out var diagnostic);
454+
diagnostic.Errors.Should().NotBeEmpty();
455+
doc.Channels.Values.First().Publish.Message.First().Should().BeNull();
456+
}
457+
431458
[Test]
432459
public void Read_WithBasicPlusOAuthFlowDeserializes()
433460
{

test/LEGO.AsyncAPI.Tests/Models/AsyncApiChannel_Should.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,36 @@
33
namespace LEGO.AsyncAPI.Tests.Models
44
{
55
using System.Collections.Generic;
6+
using System.Linq;
67
using FluentAssertions;
78
using LEGO.AsyncAPI.Bindings.Kafka;
89
using LEGO.AsyncAPI.Bindings.WebSockets;
910
using LEGO.AsyncAPI.Models;
1011
using LEGO.AsyncAPI.Models.Interfaces;
12+
using LEGO.AsyncAPI.Readers;
1113
using NUnit.Framework;
1214

1315
public class AsyncApiChannel_Should : TestBase
1416
{
17+
[Test]
18+
public void AsyncApiChannel_WithInlineParameter_DoesNotCreateReference()
19+
{
20+
var input =
21+
"""
22+
parameters:
23+
id:
24+
description: ids
25+
schema:
26+
type: string
27+
enum:
28+
- 08735ae0-6a1a-4578-8b4a-35aa26d15993
29+
- 97845c62-329c-4d87-ad24-4f611b909a10
30+
""";
31+
32+
var channel = new AsyncApiStringReader().ReadFragment<AsyncApiChannel>(input, AsyncApiVersion.AsyncApi2_0, out var _ );
33+
channel.Parameters.First().Value.Reference.Should().BeNull();
34+
}
35+
1536
[Test]
1637
public void AsyncApiChannel_WithWebSocketsBinding_Serializes()
1738
{

0 commit comments

Comments
 (0)