blob: 112055d394df1ce0e369766d7568db108e091173 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.daffodil.tdml
import org.apache.daffodil.xml.XMLUtils
import org.junit.Test
import org.apache.daffodil.xml.NS.implicitNStoString
class TestTDMLRunnerTutorial {
val tdml = XMLUtils.TDML_NAMESPACE
val dfdl = XMLUtils.DFDL_NAMESPACE
val xsi = XMLUtils.XSI_NAMESPACE
val xsd = XMLUtils.XSD_NAMESPACE
val example = XMLUtils.EXAMPLE_NAMESPACE
val tns = example
val xhtml = XMLUtils.XHTML_NAMESPACE
val tdmlWithTutorial =
<tdml:testSuite suiteName="theSuiteName" xmlns:tns={ tns } xmlns:tdml={ tdml } xmlns:dfdl={ dfdl } xmlns:xs={ xsd } xmlns:xsi={ xsi } xmlns={ xhtml } xmlns:ex={ example }>
<tdml:tutorial>
<p>1</p>
</tdml:tutorial>
<tdml:defineSchema name="mySchema">
<xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>
<dfdl:format ref="tns:GeneralFormat"/>
<xs:element name="data" type="xs:int" dfdl:lengthKind="explicit" dfdl:length="{ xs:unsignedInt(2) }"/>
</tdml:defineSchema>
<tdml:tutorial>
<p>2</p>
</tdml:tutorial>
<tdml:parserTestCase name="testTutorialElementsParse" root="data" model="mySchema">
<tdml:tutorial>
<p>3</p>
</tdml:tutorial>
<tdml:document>37</tdml:document>
<tdml:tutorial>
<p>4</p>
</tdml:tutorial>
<tdml:infoset>
<tdml:dfdlInfoset>
<ex:data>37</ex:data>
</tdml:dfdlInfoset>
</tdml:infoset>
<tdml:tutorial>
<p>5</p>
</tdml:tutorial>
</tdml:parserTestCase>
<tdml:tutorial>
<p>6</p>
</tdml:tutorial>
<tdml:defineSchema name="s">
<xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>
<dfdl:format ref="ex:GeneralFormat"/>
<xs:element name="bar" dfdl:lengthKind="explicit" dfdl:length="5" type="xs:string"/>
</tdml:defineSchema>
<tdml:tutorial>
<p>7</p>
</tdml:tutorial>
<tdml:unparserTestCase name="testTutorialElementsUnparse" root="bar" model="s">
<tdml:tutorial>
<p>8</p>
</tdml:tutorial>
<tdml:infoset>
<tdml:dfdlInfoset>
<ex:bar>Hello</ex:bar>
</tdml:dfdlInfoset>
</tdml:infoset>
<tdml:tutorial>
<p>9</p>
</tdml:tutorial>
<tdml:document>Hello</tdml:document>
<tdml:tutorial>
<p>10</p>
</tdml:tutorial>
</tdml:unparserTestCase>
<tdml:tutorial>
<p>11</p>
</tdml:tutorial>
</tdml:testSuite>
@Test def testTutorialElementsParse(): Unit = {
val testSuite = tdmlWithTutorial
val runner = new Runner(testSuite)
runner.runOneTest("testTutorialElementsParse")
runner.reset
}
@Test def testTutorialElementsUnparse(): Unit = {
val testSuite = tdmlWithTutorial
val runner = new Runner(testSuite)
runner.runOneTest("testTutorialElementsUnparse")
runner.reset
}
}