From 36878c60e0135ff54866ee25c01c6d3cd6b43336 Mon Sep 17 00:00:00 2001 From: Davit Asryan Date: Fri, 31 Mar 2023 12:32:53 +0400 Subject: [PATCH] #2488 - Add using statement for EnumMember attribute --- src/Kiota.Builder/Writers/CSharp/CodeEnumWriter.cs | 2 ++ tests/Kiota.Builder.Tests/Writers/CSharp/CodeEnumWriterTests.cs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/Kiota.Builder/Writers/CSharp/CodeEnumWriter.cs b/src/Kiota.Builder/Writers/CSharp/CodeEnumWriter.cs index 57ecc9aceb..45728cc1b3 100644 --- a/src/Kiota.Builder/Writers/CSharp/CodeEnumWriter.cs +++ b/src/Kiota.Builder/Writers/CSharp/CodeEnumWriter.cs @@ -14,6 +14,8 @@ public override void WriteCodeElement(CodeEnum codeElement, LanguageWriter write ArgumentNullException.ThrowIfNull(writer); if (!codeElement.Options.Any()) return; + if (codeElement.Options.Any(x => x.IsNameEscaped)) + writer.WriteLine($"using System.Runtime.Serialization;"); var codeNamespace = codeElement.Parent as CodeNamespace; if (codeNamespace != null) diff --git a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeEnumWriterTests.cs b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeEnumWriterTests.cs index 5729f4c3ec..48822b74d1 100644 --- a/tests/Kiota.Builder.Tests/Writers/CSharp/CodeEnumWriterTests.cs +++ b/tests/Kiota.Builder.Tests/Writers/CSharp/CodeEnumWriterTests.cs @@ -55,6 +55,7 @@ public void NamesDiffer_WritesEnumMember() currentEnum.AddOption(new CodeEnumOption { Name = "InvalidName", SerializationName = "Invalid:Name"}); writer.Write(currentEnum); var result = tw.ToString(); + Assert.Contains($"using System.Runtime.Serialization;", result); Assert.Contains($"[EnumMember(Value = \"Invalid:Name\")]", result); } @@ -66,6 +67,7 @@ public void NamesDontDiffer_DoesntWriteEnumMember() currentEnum.AddOption(new CodeEnumOption { Name = "ValidName"}); writer.Write(currentEnum); var result = tw.ToString(); + Assert.DoesNotContain($"using System.Runtime.Serialization;", result); Assert.DoesNotContain($"\"ValidName\"", result); }