diff --git a/src/LEGO.AsyncAPI.Readers/V2/AsyncApiSchemaDeserializer.cs b/src/LEGO.AsyncAPI.Readers/V2/AsyncApiSchemaDeserializer.cs index b99fdef8..1934cb0d 100644 --- a/src/LEGO.AsyncAPI.Readers/V2/AsyncApiSchemaDeserializer.cs +++ b/src/LEGO.AsyncAPI.Readers/V2/AsyncApiSchemaDeserializer.cs @@ -61,7 +61,10 @@ public class JsonSchemaDeserializer } }, { - "exclusiveMaximum", (a, n) => { a.ExclusiveMaximum = bool.Parse(n.GetScalarValue()); } + "exclusiveMaximum", (a, n) => + { + a.ExclusiveMaximum = double.Parse(n.GetScalarValue(), NumberStyles.Float, n.Context.Settings.CultureInfo); + } }, { "minimum", @@ -71,7 +74,10 @@ public class JsonSchemaDeserializer } }, { - "exclusiveMinimum", (a, n) => { a.ExclusiveMinimum = bool.Parse(n.GetScalarValue()); } + "exclusiveMinimum", (a, n) => + { + a.ExclusiveMinimum = double.Parse(n.GetScalarValue(), NumberStyles.Float, n.Context.Settings.CultureInfo); + } }, { "maxLength", (a, n) => { a.MaxLength = int.Parse(n.GetScalarValue(), n.Context.Settings.CultureInfo); } diff --git a/src/LEGO.AsyncAPI/Models/AsyncApiSchema.cs b/src/LEGO.AsyncAPI/Models/AsyncApiSchema.cs index 3244017b..0931c953 100644 --- a/src/LEGO.AsyncAPI/Models/AsyncApiSchema.cs +++ b/src/LEGO.AsyncAPI/Models/AsyncApiSchema.cs @@ -42,7 +42,7 @@ public class AsyncApiSchema : IAsyncApiReferenceable, IAsyncApiExtensible, IAsyn /// /// follow JSON Schema definition: https://json-schema.org/draft-07/json-schema-release-notes.html. /// - public bool? ExclusiveMaximum { get; set; } + public double? ExclusiveMaximum { get; set; } /// /// follow JSON Schema definition: https://json-schema.org/draft-07/json-schema-release-notes.html. @@ -52,7 +52,7 @@ public class AsyncApiSchema : IAsyncApiReferenceable, IAsyncApiExtensible, IAsyn /// /// follow JSON Schema definition: https://json-schema.org/draft-07/json-schema-release-notes.html. /// - public bool? ExclusiveMinimum { get; set; } + public double? ExclusiveMinimum { get; set; } /// /// follow JSON Schema definition: https://json-schema.org/draft-07/json-schema-release-notes.html. diff --git a/test/LEGO.AsyncAPI.Tests/Models/AsyncApiSchema_Should.cs b/test/LEGO.AsyncAPI.Tests/Models/AsyncApiSchema_Should.cs index 830a44bc..ec7c023f 100644 --- a/test/LEGO.AsyncAPI.Tests/Models/AsyncApiSchema_Should.cs +++ b/test/LEGO.AsyncAPI.Tests/Models/AsyncApiSchema_Should.cs @@ -21,7 +21,7 @@ public class AsyncApiSchema_Should : TestBase Title = "title1", MultipleOf = 3, Maximum = 42, - ExclusiveMinimum = true, + ExclusiveMinimum = 42, Minimum = 10, Default = new AsyncApiAny(15), Type = SchemaType.Integer, @@ -37,7 +37,7 @@ public class AsyncApiSchema_Should : TestBase Title = "title1", MultipleOf = 3, Maximum = double.MaxValue, - ExclusiveMinimum = true, + ExclusiveMinimum = double.MinValue, Minimum = double.MinValue, Default = new AsyncApiAny(15), Type = SchemaType.Integer, @@ -211,7 +211,7 @@ public class AsyncApiSchema_Should : TestBase Title = "title1", MultipleOf = 3, Maximum = 42, - ExclusiveMinimum = true, + ExclusiveMinimum = 42, Minimum = 10, Default = new AsyncApiAny(15), Type = SchemaType.Integer, @@ -307,7 +307,7 @@ public void SerializeAsJson_WithAdvancedSchemaNumber_V2Works() "type": "integer", "maximum": 42, "minimum": 10, - "exclusiveMinimum": true, + "exclusiveMinimum": 42, "multipleOf": 3, "default": 15, "nullable": true, @@ -335,7 +335,7 @@ public void SerializeAsJson_WithAdvancedSchemaBigNumbers_V2Works() "type": "integer", "maximum": 1.7976931348623157E+308, "minimum": -1.7976931348623157E+308, - "exclusiveMinimum": true, + "exclusiveMinimum": -1.7976931348623157E+308, "multipleOf": 3, "default": 15, "nullable": true,