From f5c67f966b7d64c049c48c6bcca451db11970552 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Sat, 12 Aug 2023 09:02:05 -0600 Subject: [PATCH] Tests: Add negative test for Java 9 underscore identifier, #53 This adds a new xUnit Theory for tests that are expected to fail parsing. --- JavaToCSharp.Tests/IntegrationTests.cs | 20 ++++++++++++++++++- .../Resources/Java9Underscore.java | 9 +++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 JavaToCSharp.Tests/Resources/Java9Underscore.java diff --git a/JavaToCSharp.Tests/IntegrationTests.cs b/JavaToCSharp.Tests/IntegrationTests.cs index 59c2d44d..9b0e52f5 100644 --- a/JavaToCSharp.Tests/IntegrationTests.cs +++ b/JavaToCSharp.Tests/IntegrationTests.cs @@ -19,7 +19,10 @@ public class IntegrationTests [InlineData("Resources/TestNumericDocValuesUpdates.java")] public void GeneralSuccessfulConversionTest(string filePath) { - var options = new JavaConversionOptions(); + var options = new JavaConversionOptions + { + IncludeComments = false, + }; options.WarningEncountered += (_, eventArgs) => throw new InvalidOperationException($"Encountered a warning in conversion: {eventArgs.Message}"); @@ -28,6 +31,21 @@ public void GeneralSuccessfulConversionTest(string filePath) Assert.NotNull(parsed); } + [Theory] + [InlineData("Resources/Java9Underscore.java")] + public void GeneralUnsuccessfulConversionTest(string filePath) + { + var options = new JavaConversionOptions + { + IncludeComments = false, + }; + + options.WarningEncountered += (_, eventArgs) + => throw new InvalidOperationException($"Encountered a warning in conversion when we expected a failure: {eventArgs.Message}"); + + Assert.ThrowsAny(() => JavaToCSharpConverter.ConvertText(File.ReadAllText(filePath), options)); + } + [Theory] [InlineData("Resources/HelloWorld.java")] [InlineData("Resources/Java7BasicTryWithResources.java")] diff --git a/JavaToCSharp.Tests/Resources/Java9Underscore.java b/JavaToCSharp.Tests/Resources/Java9Underscore.java new file mode 100644 index 00000000..1b1307ce --- /dev/null +++ b/JavaToCSharp.Tests/Resources/Java9Underscore.java @@ -0,0 +1,9 @@ +// Throws an exception parsing as of Java 9 +package example; + +public class Program { + public static void main(String[] args) { + String _ = "Hello world!"; + System.out.println(_); + } +}