Package org.apache.axiom.util.stax.dialect

Source Code of org.apache.axiom.util.stax.dialect.DialectTestSuiteBuilder

/*
* 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.axiom.util.stax.dialect;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.xml.stream.XMLStreamConstants;

import org.apache.axiom.testutils.conformance.ConformanceTestFile;
import org.apache.axiom.testutils.suite.TestSuiteBuilder;

public class DialectTestSuiteBuilder extends TestSuiteBuilder {
    private final List/*<StAXImplementation>*/ implementations = new ArrayList();
   
    public void addImplementation(StAXImplementation implementation) {
        implementations.add(implementation);
    }
   
    protected void addTests() {
        for (Iterator it = implementations.iterator(); it.hasNext(); ) {
            addTests((StAXImplementation)it.next());
        }
    }

    private void addTests(StAXImplementation staxImpl) {
        ConformanceTestFile[] conformanceTestFiles = ConformanceTestFile.getConformanceTestFiles();
        addTest(new TestCloseInputStream(staxImpl));
        addTest(new TestCloseReader(staxImpl));
        addTest(new TestCreateXMLEventWriterWithNullEncoding(staxImpl));
        addTest(new TestCreateXMLStreamReaderThreadSafety(staxImpl));
        addTest(new TestCreateXMLStreamWriterThreadSafety(staxImpl));
        addTest(new TestCreateXMLStreamWriterWithNullEncoding(staxImpl));
        addTest(new TestDisallowDoctypeDeclWithDenialOfService(staxImpl));
        addTest(new TestDisallowDoctypeDeclWithExternalSubset(staxImpl));
        addTest(new TestDisallowDoctypeDeclWithInternalSubset(staxImpl));
        addTest(new TestEnableCDataReporting(staxImpl));
        addTest(new TestGetAttributeNamespaceWithNoPrefix(staxImpl));
        addTest(new TestGetCharacterEncodingScheme(staxImpl));
        addTest(new TestGetEncodingExternal(staxImpl));
        addTest(new TestGetEncodingFromDetection(staxImpl, "UTF-8", "UTF-8"));
        // The case of UTF-16 with a byte order marker is not well defined:
        // * One may argue that the result should be UTF-16BE or UTF-16LE because
        //   otherwise the information about the byte order is lost.
        // * On the other hand, one may argue that the result should be UTF-16
        //   because UTF-16BE or UTF-16LE may be interpreted as an indication that
        //   there should be no BOM.
        // Therefore we accept both results.
        addTest(new TestGetEncodingFromDetection(staxImpl, "UnicodeBig", new String[] { "UTF-16", "UTF-16BE" } ));
        addTest(new TestGetEncodingFromDetection(staxImpl, "UnicodeLittle", new String[] { "UTF-16", "UTF-16LE" }));
        // Here there is no doubt; if the encoding is UTF-16 without BOM, then the
        // parser should report the detected byte order.
        addTest(new TestGetEncodingFromDetection(staxImpl, "UnicodeBigUnmarked", "UTF-16BE"));
        addTest(new TestGetEncodingFromDetection(staxImpl, "UnicodeLittleUnmarked", "UTF-16LE"));
        addTest(new TestGetEncoding(staxImpl));
        addTest(new TestGetEncodingWithCharacterStream(staxImpl));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.COMMENT, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.SPACE, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.START_DOCUMENT, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.END_DOCUMENT, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, false));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.DTD, true));
        addTest(new TestGetLocalNameIllegalStateException(staxImpl, XMLStreamConstants.CDATA, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.COMMENT, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.SPACE, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.START_DOCUMENT, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.END_DOCUMENT, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.DTD, true));
        addTest(new TestGetNameIllegalStateException(staxImpl, XMLStreamConstants.CDATA, true));
        addTest(new TestGetNamespaceContextImplicitNamespaces(staxImpl));
        for (int i=0; i<conformanceTestFiles.length; i++) {
            ConformanceTestFile file = conformanceTestFiles[i];
            // Some parsers have problems with external subsets; anyway the test files with
            // DTDs are not essential for this test.
            if (!file.hasExternalSubset()) {
                addTest(new TestGetNamespaceContext(staxImpl, file));
            }
        }
        addTest(new TestGetNamespacePrefixDefaultNamespace(staxImpl));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.COMMENT, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.SPACE, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.START_DOCUMENT, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.END_DOCUMENT, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.DTD, true));
        addTest(new TestGetNamespaceURIIllegalStateException(staxImpl, XMLStreamConstants.CDATA, true));
        addTest(new TestGetNamespaceURIWithNullNamespace(staxImpl));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.COMMENT, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.SPACE, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.START_DOCUMENT, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.END_DOCUMENT, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.DTD, true));
        addTest(new TestGetPrefixIllegalStateException(staxImpl, XMLStreamConstants.CDATA, true));
        addTest(new TestGetPrefixWithNoPrefix(staxImpl));
        addTest(new TestGetTextInProlog(staxImpl));
        addTest(new TestGetVersion(staxImpl));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.START_ELEMENT, true));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.END_ELEMENT, true));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.CHARACTERS, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.COMMENT, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.SPACE, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.START_DOCUMENT, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.END_DOCUMENT, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.DTD, false));
        addTest(new TestHasName(staxImpl, XMLStreamConstants.CDATA, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.COMMENT, true));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.SPACE, true));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.START_DOCUMENT, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.END_DOCUMENT, false));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, true));
        addTest(new TestHasText(staxImpl, XMLStreamConstants.DTD, true));
        // Note: CDATA events are actually not mentioned in the Javadoc of XMLStreamReader#hasText().
        //       This is because reporting CDATA sections as CDATA events is an implementation
        //       specific feature. Nevertheless, for obvious reasons, we expect hasText to
        //       return true in this case.
        addTest(new TestHasText(staxImpl, XMLStreamConstants.CDATA, true));
        addTest(new TestIsCharactersOnCDATASection(staxImpl));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.START_ELEMENT, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.END_ELEMENT, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.PROCESSING_INSTRUCTION, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.CHARACTERS, true));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.COMMENT, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.SPACE, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.START_DOCUMENT, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.END_DOCUMENT, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.ENTITY_REFERENCE, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.DTD, false));
        addTest(new TestIsCharacters(staxImpl, XMLStreamConstants.CDATA, false));
        addTest(new TestIsStandalone(staxImpl));
        addTest(new TestNextAfterEndDocument(staxImpl));
        addTest(new TestSetPrefixScope(staxImpl));
        addTest(new TestStandaloneSet(staxImpl));
        addTest(new TestGetOriginalXMLStreamReader(staxImpl));
        addTest(new TestWriteStartDocumentWithNullEncoding(staxImpl));
    }
}
TOP

Related Classes of org.apache.axiom.util.stax.dialect.DialectTestSuiteBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.