From 80f580420f400318fbc7b4dcadd9f50478f91d07 Mon Sep 17 00:00:00 2001 From: Philipp Brendel Date: Thu, 2 Apr 2026 12:00:48 +0200 Subject: [PATCH 1/2] fix: REMARK element should be REMARKS --- src/BMEcatSharp/Types/ProductDetails.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BMEcatSharp/Types/ProductDetails.cs b/src/BMEcatSharp/Types/ProductDetails.cs index d506321..afc4870 100644 --- a/src/BMEcatSharp/Types/ProductDetails.cs +++ b/src/BMEcatSharp/Types/ProductDetails.cs @@ -217,7 +217,7 @@ public ProductDetails(IEnumerable descriptionShort) ///
/// XML-namespace: BMECAT /// - [BMEXmlElement("REMARK")] + [BMEXmlElement("REMARKS")] public List? Remarks { get; set; } = []; [EditorBrowsable(EditorBrowsableState.Never)] public bool RemarksSpecified => Remarks?.Count > 0; From f351defcedef1fdf1d7d6ff248d652df71087675 Mon Sep 17 00:00:00 2001 From: warappa Date: Thu, 2 Apr 2026 18:29:49 +0200 Subject: [PATCH 2/2] #26: Add test for correct remarks usage --- .../BMEcatSerializationTests.cs | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/BMEcatSharp.Tests/BMEcatSerializationTests.cs b/src/BMEcatSharp.Tests/BMEcatSerializationTests.cs index 68a574c..a83dc05 100644 --- a/src/BMEcatSharp.Tests/BMEcatSerializationTests.cs +++ b/src/BMEcatSharp.Tests/BMEcatSerializationTests.cs @@ -269,4 +269,52 @@ public void Ticket17_Directly_set_Emails_property_is_serialized_even_if_not_acce serializedContent.Should().Contain("email@example.com"); serializedContent.Should().Contain("email.2@example.com"); } + + [Test] + public void PR26_RemarksHasRightElementName() + { + // Arrange + var order = testConfig.BMEcats.GetBMEcatNewCatalog(); + + var productDetails = new ProductDetails + { + DescriptionShort = + [ + new MultiLingualString("test" , LanguageCodes.deu) + ], + }; + + order.NewCatalog.Products.Add(new NewCatalogProduct + { + SupplierPid = new SupplierPid("123", SupplierPidTypeValues.Ean.ToString()), + OrderDetails = new ProductOrderDetails(), + PriceDetails = + [ + new ProductPriceDetails + { + ProductPrices = + [ + new ProductPrice() + { + Amount = 1m, + Type = ProductPriceTypeValues.GrosList + } + ] + } + ], + + Details = productDetails + }); + + // Act + productDetails.Remarks = + [ + new MultiLingualString("Product Details DE", LanguageCodes.deu), + new MultiLingualString("Product Details EN", LanguageCodes.eng) + ]; + + // Assert + var validationResult = order.Validate(target); + validationResult.IsValid.Should().Be(true); + } }