From 3c964b86619e5aaa9de63cc844d480ec7e477e02 Mon Sep 17 00:00:00 2001 From: sankouski-dzmitry Date: Tue, 7 Dec 2021 13:42:25 +0300 Subject: [PATCH] Review fixes - use InstanceCreator#newInstance() - use TestNG exception with detail exception message - create and link github issue --- CHANGES.txt | 2 +- testng-core/src/main/java/org/testng/internal/Yaml.java | 5 +++-- testng-core/src/test/java/test/yaml/YamlTest.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 1d86bb9fe8..185e4c2d01 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,5 @@ Current -New: Yaml parser: implement loadClasses flag (Dzmitry Sankouski) +Fixed: GITHUB-2689: Yaml parser: implement loadClasses flag (Dzmitry Sankouski) Fixed: GITHUB-2676: NPE is triggered when working with ITestObjectFactory (Krishnan Mahadevan) Fixed: GITHUB-2674: Run onTestSkipped for each value from data provider (Krishnan Mahadevan) Fixed: GITHUB-2672: Log real stacktrace when test times out. (cdalexndr) diff --git a/testng-core/src/main/java/org/testng/internal/Yaml.java b/testng-core/src/main/java/org/testng/internal/Yaml.java index 59dfa86c8b..cd737972e1 100644 --- a/testng-core/src/main/java/org/testng/internal/Yaml.java +++ b/testng-core/src/main/java/org/testng/internal/Yaml.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.function.Consumer; import org.testng.TestNGException; +import org.testng.internal.objects.InstanceCreator; import org.testng.util.Strings; import org.testng.xml.XmlClass; import org.testng.xml.XmlInclude; @@ -378,13 +379,13 @@ public Object newInstance(Node node) { nodeTuple -> ((ScalarNode) nodeTuple.getKeyNode()).getValue().equals("name")) .findFirst() - .orElseThrow(RuntimeException::new) + .orElseThrow(() -> new TestNGException("Node 'name' not found")) .getValueNode(); className = ((ScalarNode) valueNode).getValue(); } else { className = ((ScalarNode) node).getValue(); } - return c.newInstance(className, loadClasses); + return InstanceCreator.newInstance(c, className, loadClasses); } catch (Exception e) { throw new TestNGException("Failed to instantiate class", e); } diff --git a/testng-core/src/test/java/test/yaml/YamlTest.java b/testng-core/src/test/java/test/yaml/YamlTest.java index 2cae0896aa..85d639f373 100644 --- a/testng-core/src/test/java/test/yaml/YamlTest.java +++ b/testng-core/src/test/java/test/yaml/YamlTest.java @@ -72,7 +72,7 @@ public void testXmlDependencyGroups() throws IOException { assertThat(Yaml.toYaml(actualXmlSuite).toString()).isEqualToNormalizingNewlines(expectedYaml); } - @Test + @Test(description = "GITHUB-2689") public void testLoadClassesFlag() throws IOException { YamlParser yamlParser = new YamlParser(); String yamlSuiteFile = "src/test/resources/yaml/suiteWithNonExistentTest.yaml";