Skip to content

Commit 7fd3af0

Browse files
authored
fix: inline channel parameters should not deserialize as references (#172)
1 parent cf6cf6d commit 7fd3af0

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

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

+1-1
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

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

+21
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
internal 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)