Skip to content

Commit 3d68a18

Browse files
committed
Issue #31.
1 parent 9d5ef0e commit 3d68a18

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

tests/issues/src/main/resources/schema.xsd

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,15 @@
273273
<xs:attribute name="testBoolean" type="xs:boolean" default="true"/>
274274
</xs:complexType>
275275

276+
<xs:simpleType name="issueGH31Type">
277+
<xs:restriction base="xs:string">
278+
<xs:enumeration value="Male"/>
279+
<xs:enumeration value="Female"/>
280+
</xs:restriction>
281+
</xs:simpleType>
282+
283+
<xs:complexType name="issueGH31ComplexType">
284+
<xs:attribute name="testEnum" type="issueGH31Type" default="Male"/>
285+
</xs:complexType>
286+
276287
</xs:schema>
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.jvnet.jaxb2_commons.tests.issues;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
import org.jvnet.jaxb2_commons.lang.EnumValue;
6+
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
7+
import org.jvnet.jaxb2_commons.lang.ToStringStrategy2;
8+
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
9+
10+
public class GH31Test {
11+
12+
@Test
13+
public void considersDefaultValuesInMerge() {
14+
final IssueGH31ComplexType t = new IssueGH31ComplexType();
15+
16+
final ToStringStrategy2 s = new JAXBToStringStrategy() {
17+
public boolean isUseIdentityHashCode() {
18+
return false;
19+
}
20+
21+
public StringBuilder append(ObjectLocator locator,
22+
StringBuilder buffer, Object value) {
23+
24+
if (value instanceof EnumValue<?>) {
25+
return super.append(locator, buffer,
26+
((EnumValue<?>) value).enumValue());
27+
} else {
28+
return super.append(locator, buffer, value);
29+
}
30+
};
31+
};
32+
Assert.assertEquals(
33+
"org.jvnet.jaxb2_commons.tests.issues.IssueGH31ComplexType[testEnum=Male(default)]",
34+
t.append(null, new StringBuilder(), s).toString());
35+
}
36+
}

tests/issues/src/test/java/org/jvnet/jaxb2_commons/tests/issues/RunIssuesPlugin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ protected void configureMojo(AbstractXJC2Mojo mojo) {
1919
public List<String> getArgs() {
2020
final List<String> args = new ArrayList<String>(super.getArgs());
2121
// args.add("-XelementWrapper");
22+
args.add("-XenumValue");
2223
args.add("-XtoString");
2324
args.add("-Xequals");
2425
args.add("-XhashCode");

tests/issues/src/test/java/org/jvnet/jaxb2_commons/tests/issues/RunPlugins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void compilesSchema() throws Exception {
3131
"target/generated-sources/xjc", "-extension", "-XhashCode",
3232
"-Xequals", "-XtoString", "-Xcopyable", "-Xmergeable",
3333
"-Xinheritance", "-Xsetters", "-Xsetters-mode=direct",
34-
"-Xwildcard"
34+
"-Xwildcard", "-XenumValue"
3535
// "-XsimpleToString"
3636

3737
};

0 commit comments

Comments
 (0)