<?xml version='1.0'?>
<TestDescriptor xmlns="http://castor.exolab.org/Test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://castor.exolab.org/Test http://castor.exolab.org/Test">
    <Name>Test the handling of IDREFs</Name>
    <Author>Werner Guttmann</Author>
    <Comment>
        Test unmarshalling of xsd:IDREF content elements, and check for
        various error conditions during unmarshalling and marshalling.
    </Comment>
    <Category>basic capability</Category>
    <SourceGeneratorTest>
        <Schema>test.xsd</Schema>
        <BindingFile>binding.xml</BindingFile>
        <Root_Object random="false" dump="true">PartialTermination</Root_Object>
        <UnitTestCase>
            <Name>Test valid XML document instance with IDREFs</Name>
            <Configuration>
                <Unmarshal>
                    <Call-method name="setValidation">
                        <Value type="boolean">true</Value>
                    </Call-method>
                </Unmarshal>
            </Configuration>
            <Input>input-ok.xml</Input>
        </UnitTestCase>
        <UnitTestCase>
            <Name>Unmarshal invalid XML document instance with empty IDREF value</Name>
            <Configuration>
                <Unmarshal>
                    <Call-method name="setValidation">
                        <Value type="boolean">true</Value>
                    </Call-method>
                </Unmarshal>
            </Configuration>
            <Input>input-with-empty-idref.xml</Input>
            <Failure FailureStep="unmarshal-reference">true</Failure>
        </UnitTestCase>
        <UnitTestCase>
            <Name>Test invalid XML document instance with non-existing IDs</Name>
            <Configuration>
                <Unmarshal>
                    <Call-method name="setValidation">
                        <Value type="boolean">true</Value>
                    </Call-method>
                </Unmarshal>
            </Configuration>
            <Input>input-with-non-existing-idrefs.xml</Input>
            <Failure FailureStep="unmarshal-reference">true</Failure>
        </UnitTestCase>
        <UnitTestCase>
            <Name>Unmarshal invalid XML document instance with NULL IDREF</Name>
            <Configuration>
                <Unmarshal>
                    <Call-method name="setValidation">
                        <Value type="boolean">true</Value>
                    </Call-method>
                </Unmarshal>
            </Configuration>
            <Input>input-with-null-idref.xml</Input>
            <Failure FailureStep="unmarshal-reference">true</Failure>
        </UnitTestCase>
        <UnitTestCase>
            <Name>Test marshalling XML document instance after manual IDREF change</Name>
            <CustomTest>
                <TestClass>TestMarshalIDREF</TestClass>
                <Methods>
                    <Call-method name="testMarshallChangeHref"/>
                    <Call-method name="testMarshallInexistentHref"/>
                    <Call-method name="testMarshallWrongHref"/>
                    <Call-method name="testMarshallNullHref"/>
                </Methods>
            </CustomTest>
            <Configuration>
                <Marshal>
                    <Call-method name="setValidation">
                        <Value type="boolean">true</Value>
                    </Call-method>
                </Marshal>
            </Configuration>
        </UnitTestCase>
     </SourceGeneratorTest>
</TestDescriptor>
