Java tutorial
/* * SCI-Flex: Flexible Integration of SOA and CEP * Copyright (C) 2008, 2009 http://sci-flex.org * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.sciflex.plugins.synapse.esper.mediators; import java.io.IOException; import java.io.StringReader; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.impl.builder.StAXOMBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.synapse.Mediator; import org.apache.synapse.config.xml.MediatorFactory; import org.apache.synapse.config.xml.MediatorFactoryFinder; import org.apache.synapse.config.xml.MediatorSerializer; import org.custommonkey.xmlunit.XMLTestCase; import org.xml.sax.SAXException; public abstract class AbstractTestCase extends XMLTestCase { private static final Log log = LogFactory.getLog(AbstractTestCase.class); public AbstractTestCase(String name) { super(name); } public AbstractTestCase() { } protected void setUp() throws Exception { super.setUp(); } protected OMElement createOMElement(String xml) { try { XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml)); StAXOMBuilder builder = new StAXOMBuilder(reader); OMElement omElement = builder.getDocumentElement(); return omElement; } catch (XMLStreamException e) { throw new RuntimeException(e); } } protected boolean serialization(String inputXml, MediatorFactory mediatorFactory, MediatorSerializer mediatorSerializer) { OMElement inputOM = createOMElement(inputXml); Mediator mediator = mediatorFactory.createMediator(inputOM); OMElement resultOM = mediatorSerializer.serializeMediator(null, mediator); try { assertXMLEqual(resultOM.toString(), inputXml); return true; } catch (SAXException e) { log.error(e); } catch (IOException e) { log.error(e); } return false; } protected boolean serialization(String inputXml, MediatorSerializer mediatorSerializer) { OMElement inputOM = createOMElement(inputXml); Mediator mediator = MediatorFactoryFinder.getInstance().getMediator(inputOM); OMElement resultOM = mediatorSerializer.serializeMediator(null, mediator); try { assertXMLEqual(resultOM.toString(), inputXml); return true; } catch (SAXException e) { log.error(e); } catch (IOException e) { log.error(e); } return false; } protected OMElement getParent() { String parentXML = "<synapse xmlns=\"http://ws.apache.org/ns/synapse\"><definitions></definitions></synapse>"; return createOMElement(parentXML); } protected boolean compare(OMElement inputElement, OMElement serializedElement) { try { assertXMLEqual(inputElement.toString(), serializedElement.toString()); return true; } catch (SAXException e) { log.error(e); } catch (IOException e) { log.error(e); } return false; } }