/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed 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. * * $Id: TestSuiteParser.hpp 475 2008-01-08 18:47:44Z jpcs $ */ #ifndef _TESTSUITEPARSERHANDLER_HPP #define _TESTSUITEPARSERHANDLER_HPP #include #include #include #include #include #include #include class TestSuiteRunner; class XQILLA_API TestCase { public: std::string name; bool updateTest; int stateTime; std::string queryURL; std::string query; std::string contextItem; std::string defaultCollection; std::map inputURIVars; std::map inputVars; std::map extraVars; std::map outputFiles; std::list > moduleFiles; std::list expectedErrors; }; class XQILLA_API TestSuiteParser : private XERCES_CPP_NAMESPACE_QUALIFIER DefaultHandler { public: TestSuiteParser(const std::string &pathToTestSuite, TestSuiteRunner *runner); void run(); void handleUnknownElement(const std::string &elementName); private: virtual void startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attributes); virtual void endElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname); virtual void characters(const XMLCh* const chars, const unsigned int length); virtual void error(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); virtual void fatalError(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); private: TestSuiteRunner *runner_; XERCES_CPP_NAMESPACE_QUALIFIER XMLURL urlXQTSCatalog_, urlXQTSQueriesDirectory_, urlXQTSResultsDirectory_, urlBasePath_, urlBasePathReferenceFiles_, urlQuery_; std::set unknownElements_; bool readingChars_; std::string chars_; std::string variableBoundToInput_, compareMethod_, namespace_, collectionID_; TestCase testCase_; }; #endif