[castor-dev] Re: Unmarshalling and Validating xsi:nil <testCastorUnmarshallerTopValidationTag_Element_RequiredMultipleNillableDateTag>
Jene Jasper
Sun, 16 Jan 2005 17:14:08 -0800
public void
testCastorUnmarshallerTopValidationTag_Element_RequiredMultipleNillableDateTag()
throws Exception {
for (int i = 0; i < 2; i++) {
boolean setRoot = (i == 1);
String xml = "<TopValidationTag>"
+ "<RequiredDateTag>2005-01-16</RequiredDateTag>"
+
"<RequiredNillableDateTag>2005-01-16</RequiredNillableDateTag>"
+ "<OptionalDateTag>2005-01-16</OptionalDateTag>"
+
"<OptionalNillableDateTag>2005-01-16</OptionalNillableDateTag>"
+
"<RequiredMultipleDateTag>2005-01-16</RequiredMultipleDateTag>"
+
"<RequiredMultipleNillableDateTag>2005-01-16</RequiredMultipleNillableDateTag>"
+
"<OptionalMultipleDateTag>2005-01-16</OptionalMultipleDateTag>"
+
"<OptionalMultipleNillableDateTag>2005-01-16</OptionalMultipleNillableDateTag>"
+ "</TopValidationTag>";
TopValidationTag topValidationTag =
(TopValidationTag)deserializeUsingCastor(xml, new TopValidationTag(),
setRoot, false);
assertEquals("2005-01-16",
topValidationTag.getRequiredDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getRequiredNillableDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalNillableDateTag().toString());
assertEquals(1,
topValidationTag.getRequiredMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleDateTag()[0].toString());
assertEquals(1,
topValidationTag.getRequiredMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleNillableDateTag()[0].toString());
assertEquals(1,
topValidationTag.getOptionalMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleDateTag()[0].toString());
assertEquals(1,
topValidationTag.getOptionalMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleNillableDateTag()[0].toString());
assertTrue(topValidationTag.isValid());
xml = "<TopValidationTag>"
+ "<RequiredDateTag>2005-01-16</RequiredDateTag>"
+
"<RequiredNillableDateTag>2005-01-16</RequiredNillableDateTag>"
+ "<OptionalDateTag>2005-01-16</OptionalDateTag>"
+
"<OptionalNillableDateTag>2005-01-16</OptionalNillableDateTag>"
+
"<RequiredMultipleDateTag>2005-01-16</RequiredMultipleDateTag>"
+
"<RequiredMultipleNillableDateTag>2005-01-16</RequiredMultipleNillableDateTag>"
+ "<RequiredMultipleNillableDateTag xsi:nil=\"true\"/>"
+
"<OptionalMultipleDateTag>2005-01-16</OptionalMultipleDateTag>"
+
"<OptionalMultipleNillableDateTag>2005-01-16</OptionalMultipleNillableDateTag>"
+ "</TopValidationTag>";
topValidationTag =
(TopValidationTag)deserializeUsingCastor(xml, new TopValidationTag(),
setRoot, false);
assertEquals("2005-01-16",
topValidationTag.getRequiredDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getRequiredNillableDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalNillableDateTag().toString());
assertEquals(1,
topValidationTag.getRequiredMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleDateTag()[0].toString());
assertEquals(2,
topValidationTag.getRequiredMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleNillableDateTag()[0].toString());
assertNull(topValidationTag.getRequiredMultipleNillableDateTag()[1]);
assertEquals(1,
topValidationTag.getOptionalMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleDateTag()[0].toString());
assertEquals(1,
topValidationTag.getOptionalMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleNillableDateTag()[0].toString());
try {
topValidationTag.validate();
}
catch (ValidationException ve) {
// fail("RequiredMultipleNillableDateTag IS nillable");
assertTrue((ve.getMessage().indexOf("DateTimeValidator cannot validate a
null object") > -1)); // temp alternative for unexpected validation error
assertTrue((ve.getMessage().indexOf("_requiredMultipleNillableDateTagList")
> -1)); // temp alternative for unexpected validation error
}
xml = "<TopValidationTag>"
+ "<RequiredDateTag>2005-01-16</RequiredDateTag>"
+
"<RequiredNillableDateTag>2005-01-16</RequiredNillableDateTag>"
+ "<OptionalDateTag>2005-01-16</OptionalDateTag>"
+
"<OptionalNillableDateTag>2005-01-16</OptionalNillableDateTag>"
+
"<RequiredMultipleDateTag>2005-01-16</RequiredMultipleDateTag>"
+
"<RequiredMultipleNillableDateTag>2005-01-16</RequiredMultipleNillableDateTag>"
+ "<RequiredMultipleNillableDateTag/>"
+
"<OptionalMultipleDateTag>2005-01-16</OptionalMultipleDateTag>"
+
"<OptionalMultipleNillableDateTag>2005-01-16</OptionalMultipleNillableDateTag>"
+ "</TopValidationTag>";
topValidationTag =
(TopValidationTag)deserializeUsingCastor(xml, new TopValidationTag(),
setRoot, false);
assertEquals("2005-01-16",
topValidationTag.getRequiredDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getRequiredNillableDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalNillableDateTag().toString());
assertEquals(1,
topValidationTag.getRequiredMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleDateTag()[0].toString());
assertEquals(2,
topValidationTag.getRequiredMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleNillableDateTag()[0].toString());
assertNull(topValidationTag.getRequiredMultipleNillableDateTag()[1]);
assertEquals(1,
topValidationTag.getOptionalMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleDateTag()[0].toString());
assertEquals(1,
topValidationTag.getOptionalMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleNillableDateTag()[0].toString());
try {
topValidationTag.validate();
}
catch (ValidationException ve) {
// fail("RequiredMultipleNillableDateTag IS nillable");
assertTrue((ve.getMessage().indexOf("DateTimeValidator cannot validate a
null object") > -1)); // temp alternative for unexpected validation error
assertTrue((ve.getMessage().indexOf("_requiredMultipleNillableDateTagList")
> -1)); // temp alternative for unexpected validation error
}
xml = "<TopValidationTag>"
+ "<RequiredDateTag>2005-01-16</RequiredDateTag>"
+
"<RequiredNillableDateTag>2005-01-16</RequiredNillableDateTag>"
+ "<OptionalDateTag>2005-01-16</OptionalDateTag>"
+
"<OptionalNillableDateTag>2005-01-16</OptionalNillableDateTag>"
+
"<RequiredMultipleDateTag>2005-01-16</RequiredMultipleDateTag>"
+
"<OptionalMultipleDateTag>2005-01-16</OptionalMultipleDateTag>"
+
"<OptionalMultipleNillableDateTag>2005-01-16</OptionalMultipleNillableDateTag>"
+ "</TopValidationTag>";
topValidationTag =
(TopValidationTag)deserializeUsingCastor(xml, new TopValidationTag(),
setRoot, false);
assertEquals("2005-01-16",
topValidationTag.getRequiredDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getRequiredNillableDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalDateTag().toString());
assertEquals("2005-01-16",
topValidationTag.getOptionalNillableDateTag().toString());
assertEquals(1,
topValidationTag.getRequiredMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getRequiredMultipleDateTag()[0].toString());
assertEquals(0,
topValidationTag.getRequiredMultipleNillableDateTagCount());
assertEquals(1,
topValidationTag.getOptionalMultipleDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleDateTag()[0].toString());
assertEquals(1,
topValidationTag.getOptionalMultipleNillableDateTagCount());
assertEquals("2005-01-16",
topValidationTag.getOptionalMultipleNillableDateTag()[0].toString());
try {
topValidationTag.validate();
fail("RequiredMultipleNillableDateTag IS required");
}
catch (ValidationException ve) {
assertTrue((ve.getMessage().indexOf("A minimum of 1") >
-1));
assertTrue((ve.getMessage().indexOf("are required for
class") > -1));
assertTrue((ve.getMessage().indexOf("'RequiredMultipleNillableDateTag'")
> -1));
}
}
}
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev