From 601ae81756699b6356f396141cbcfd38b2ae6cbb Mon Sep 17 00:00:00 2001 From: Narendra Kumar Manoharan Date: Tue, 10 Sep 2019 19:21:18 -0700 Subject: [PATCH] Disable FAIL_ON_UNKNOWN_PROPERTIES for forward compatibility (#599) * Disable FAIL_ON_UNKNOWN_PROPERTIES to be compatible with future changes to the xml * Change to false * add test for unknown property * Fix detekt issue --- .../main/kotlin/ftl/reports/xml/JUnitXml.kt | 3 +++ .../kotlin/ftl/reports/xml/JUnitXmlTest.kt | 26 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt b/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt index 0fec073d21..0482aa4990 100644 --- a/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt +++ b/test_runner/src/main/kotlin/ftl/reports/xml/JUnitXml.kt @@ -3,6 +3,7 @@ package ftl.reports.xml import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule import com.fasterxml.jackson.dataformat.xml.XmlMapper import com.fasterxml.jackson.module.kotlin.KotlinModule +import com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES import ftl.reports.xml.model.JUnitTestResult import ftl.reports.xml.model.JUnitTestSuite import java.io.File @@ -12,6 +13,8 @@ import java.nio.file.Path private val xmlModule = JacksonXmlModule().apply { setDefaultUseWrapper(false) } private val xmlMapper = XmlMapper(xmlModule) .registerModules(KotlinModule()) + .configure(FAIL_ON_UNKNOWN_PROPERTIES, false) + private val xmlPrettyWriter = xmlMapper.writerWithDefaultPrettyPrinter() private fun xmlBytes(path: Path): ByteArray { diff --git a/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt b/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt index 4d461b0f7b..198c0498cd 100644 --- a/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt +++ b/test_runner/src/test/kotlin/ftl/reports/xml/JUnitXmlTest.kt @@ -140,6 +140,32 @@ junit.framework.Assert.fail(Assert.java:50) ) } + @Test + fun `unknown xml property`() { + val unknownXml = """ + + + + + + + """.trimIndent() + + val expected = """ + + + + + + + + """.trimIndent() + + val parsed = parseAllSuitesXml(unknownXml).xmlToString() + + assertThat(parsed).isEqualTo(expected) + } + @Test fun `junitXmlToString androidPassXml`() { val parsed = parseOneSuiteXml(androidPassXml).xmlToString()