From 9b8a3816dcdbe911f09975de51f4871e56bd9f3d Mon Sep 17 00:00:00 2001 From: mmsmits Date: Wed, 24 Jul 2024 11:31:25 +0200 Subject: [PATCH 1/3] removed cardinality attribute from Binary.content --- src/Hl7.Fhir.Base/Model/Generated/Binary.cs | 1 - .../Validation/ValidationTests.cs | 34 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Hl7.Fhir.Base/Model/Generated/Binary.cs b/src/Hl7.Fhir.Base/Model/Generated/Binary.cs index e4a13f24d1..4aa269b937 100644 --- a/src/Hl7.Fhir.Base/Model/Generated/Binary.cs +++ b/src/Hl7.Fhir.Base/Model/Generated/Binary.cs @@ -116,7 +116,6 @@ public Hl7.Fhir.Model.ResourceReference SecurityContext /// [FhirElement("content", Order=70)] [NotMapped(Since=FhirRelease.R4)] - [Cardinality(Min=1,Max=1)] [DataMember] public Hl7.Fhir.Model.Base64Binary ContentElement { diff --git a/src/Hl7.Fhir.Shared.Tests/Validation/ValidationTests.cs b/src/Hl7.Fhir.Shared.Tests/Validation/ValidationTests.cs index 07e539c2fc..915222f41b 100644 --- a/src/Hl7.Fhir.Shared.Tests/Validation/ValidationTests.cs +++ b/src/Hl7.Fhir.Shared.Tests/Validation/ValidationTests.cs @@ -6,6 +6,7 @@ * available at https://raw.githubusercontent.com/FirelyTeam/firely-net-sdk/master/LICENSE */ +using FluentAssertions; using Hl7.Fhir.Model; using Hl7.Fhir.Validation; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -232,5 +233,38 @@ public void TestXhtmlValidation() validateErrorOrFail(p, true); } #endif + + [TestMethod] + public void TestBinaryContentCardinalityValidation() + { + var bin = new Binary + { + ContentType = "text/plain", + Content = [0, 1, 2, 3], + Data = [0, 1, 2, 3] + }; + + var validation = () => DotNetAttributeValidation.Validate(bin); + validation.Should().NotThrow(); + + + //We removed the cardinality validation for the Content property for issue #2821 + bin = new Binary + { + ContentType = "text/plain", + Data = [0, 1, 2, 3] + }; + + validation = () => DotNetAttributeValidation.Validate(bin); + validation.Should().NotThrow(); + + bin = new Binary + { + Data = [0, 1, 2, 3] + }; + + validation = () => DotNetAttributeValidation.Validate(bin); + validation.Should().Throw(); + } } } From ef943888d3df95be8eb4ef7444574797b6853a35 Mon Sep 17 00:00:00 2001 From: mmsmits Date: Wed, 24 Jul 2024 13:26:45 +0200 Subject: [PATCH 2/3] fixed PocoSummaryProvider test --- .../StructureDefinitionSummaryProviderTest.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Hl7.Fhir.Specification.Shared.Tests/StructureDefinitionSummaryProviderTest.cs b/src/Hl7.Fhir.Specification.Shared.Tests/StructureDefinitionSummaryProviderTest.cs index d1baea4b08..b06b94e7ba 100644 --- a/src/Hl7.Fhir.Specification.Shared.Tests/StructureDefinitionSummaryProviderTest.cs +++ b/src/Hl7.Fhir.Specification.Shared.Tests/StructureDefinitionSummaryProviderTest.cs @@ -134,7 +134,10 @@ private static void areEqual(IElementDefinitionSummary left, IElementDefinitionS left.IsModifier.Should().Be(right.IsModifier, context + ": IsModifier differs"); left.IsChoiceElement.Should().Be(right.IsChoiceElement, context + ": IsChoiceElement differs"); left.IsCollection.Should().Be(right.IsCollection, context + ": IsCollection differs"); - left.IsRequired.Should().Be(right.IsRequired, context + ": IsRequired differs"); + + if (context != "Binary.content") //because of issue #2821 + left.IsRequired.Should().Be(right.IsRequired, context + ": IsRequired differs"); + left.IsResource.Should().Be(right.IsResource, context + ": IsResource differs"); // left.Order.Should().Be(right.Order, context + ": Order differs"); // order is not guaranteed to be the same, just has to have the right order. left.Representation.Should().Be(right.Representation, context + ": Representation differs"); From 8a6fe77e04ceaad94cf0209061a6b0a072f99f02 Mon Sep 17 00:00:00 2001 From: mmsmits Date: Wed, 24 Jul 2024 14:03:44 +0200 Subject: [PATCH 3/3] add this test for STU3 as well --- .../StructureDefinitionSummaryProviderTest.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Hl7.Fhir.Specification.STU3.Tests/StructureDefinitionSummaryProviderTest.cs b/src/Hl7.Fhir.Specification.STU3.Tests/StructureDefinitionSummaryProviderTest.cs index a52489b973..8a058d5c35 100644 --- a/src/Hl7.Fhir.Specification.STU3.Tests/StructureDefinitionSummaryProviderTest.cs +++ b/src/Hl7.Fhir.Specification.STU3.Tests/StructureDefinitionSummaryProviderTest.cs @@ -124,7 +124,10 @@ private static void areEqual(IElementDefinitionSummary left, IElementDefinitionS left.IsModifier.Should().Be(right.IsModifier, context + ": IsModifier differs"); left.IsChoiceElement.Should().Be(right.IsChoiceElement, context + ": IsChoiceElement differs"); left.IsCollection.Should().Be(right.IsCollection, context + ": IsCollection differs"); - left.IsRequired.Should().Be(right.IsRequired, context + ": IsRequired differs"); + + if (context != "Binary.content") //because of issue #2821 + left.IsRequired.Should().Be(right.IsRequired, context + ": IsRequired differs"); + left.IsResource.Should().Be(right.IsResource, context + ": IsResource differs"); // left.Order.Should().Be(right.Order, context + ": Order differs"); // order is not guaranteed to be the same, just has to have the right order. left.Representation.Should().Be(right.Representation, context + ": Representation differs");