Skip to content

Commit

Permalink
fixup! fix: use appropriate methods to convert the numbers in XML
Browse files Browse the repository at this point in the history
  • Loading branch information
emanuelaepure10 committed Jun 5, 2024
1 parent 979ce54 commit b5bd614
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
<xs:element name="longNumber" type="xs:long" minOccurs="0"/>
<xs:element name="floatNumber" type="xs:float" minOccurs="0"/>
<xs:element name="shortNumber" type="xs:short" minOccurs="0"/>

<element name="doubleSimpleNumber" type="double" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,15 +384,25 @@ class StreamGmlWriter2Test {

@Test
void testNumbers() throws Exception {
testNumber("integerNumber", 12345)
testNumber("doubleNumber", 12345.123456789)
testNumber("floatNumber", 12345.6789F)
testNumber("longNumber", 1234567890123456789L)
testNumber("shortNumber", 12345 as short)
testNumber("decimalNumber", new BigDecimal("1234567890.123456789"))
double doubleNumber = 123456789.123456789
double expected = java.lang.Double.parseDouble(doubleNumber.toString())

testNumber("doubleSimpleNumber", doubleNumber, expected)

testNumber("integerNumber", 12345, null)
testNumber("doubleNumber", 12345.123456789, null)
testNumber("floatNumber", 12345.6789F, null)
testNumber("longNumber", 1234567890123456789L, null)
testNumber("shortNumber", 12345 as short, null)
testNumber("decimalNumber", new BigDecimal("1234567890.123456789"), null)

testNumber("decimalNumber", new BigDecimal(doubleNumber), null);

doubleNumber = 1.23456789123456789E8
testNumber("decimalNumber", new BigDecimal(doubleNumber), null);
}

void testNumber(String elementName, number) throws Exception {
void testNumber(String elementName, number, expected) throws Exception {
// Load the target schema
def schema = loadSchema(getClass().getResource("/data/numbers/numbers.xsd").toURI())

Expand All @@ -403,10 +413,22 @@ class StreamGmlWriter2Test {

// Write file, validate and load it
def writer = new GmlInstanceWriter()
def xmlFile = writeFile(instance, schema, writer).getAbsolutePath()
File outFile = writeFile(instance, schema, writer)
def xmlFile = outFile.getAbsolutePath()
def xml = new XmlSlurper().parse(xmlFile)

assertEquals(number.toString(), xml.featureMember.PrimitiveTest."$elementName".text())
println number.toString()
println xml.featureMember.PrimitiveTest."$elementName".text()

if (expected != null) {
assertEquals(expected.toString(), xml.featureMember.PrimitiveTest."$elementName".text())
} else {
assertEquals(number.toString(), xml.featureMember.PrimitiveTest."$elementName".text())
}

if (DEL_TEMP_FILES) {
outFile.delete()
}
}

@CompileStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,8 @@ else if (simpleTypeValue instanceof XmlDateTime) {

xmlDateTime.setGDateValue(gdate);
}

// Numbers should be handled here
if (simpleTypeValue != null) {
else if (simpleTypeValue != null && simpleTypeValue instanceof XmlAnySimpleType) {
// Numbers should be handled here
return simpleTypeValue.getStringValue();
}
} catch (ConversionException e) {
Expand Down

0 comments on commit b5bd614

Please sign in to comment.