Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/test/java/de/intevation/gnv/artifacts/GNVArtifactsTestCase.java @ 305:91c37bf28c0e
Remove chart from cache when data which is displayed in chart has changed.
gnv-artifacts/trunk@363 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 23 Nov 2009 17:20:14 +0000 |
parents | 008709f79611 |
children | 251f16a083f8 |
line wrap: on
line source
/** * */ package de.intevation.gnv.artifacts; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import junit.framework.TestCase; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.xml.sax.SAXException; import de.intevation.artifactdatabase.Config; import de.intevation.artifactdatabase.DefaultCallMeta; import de.intevation.artifactdatabase.DefaultPreferredLocale; import de.intevation.artifactdatabase.FactoryBootstrap; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.ArtifactFactory; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; import de.intevation.artifacts.PreferredLocale; import de.intevation.gnv.artifacts.context.GNVArtifactContext; import de.intevation.gnv.utils.ArtifactXMLUtilities; /** * @author Tim Englich <tim.englich@intevation.de> * */ public class GNVArtifactsTestCase extends TestCase { /** * the logger, used to log exceptions and additonaly information */ private static Logger log = null; static { BasicConfigurator.configure(); log = Logger.getLogger(GNVArtifactContext.class); } private String configurationDir = "doc/conf"; private FactoryBootstrap bootstrap = null; /** * Constructor * * @param name */ public GNVArtifactsTestCase(String name) { super(name); } /** * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { log.debug("GNVArtifactsTestCase.setUp"); super.setUp(); log.info(Config.CONFIG_DIR + " ==> " + configurationDir); System.setProperty(Config.CONFIG_DIR, configurationDir); log.info("Bootstrap wird initialisiert."); bootstrap = new FactoryBootstrap(); bootstrap.boot(); } public void testTimeSeriesArtifact() { try { log.debug("GNVArtifactsTestCase.testTimeSeriesArtifact"); String artefactName = "fis_marnet"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("TimeSeries-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("TimeSeries-Artifact is available"); CallContext cc = createCallContext(); // Erster Schritt Document describeDocument = this.readDocument("src/test/ressources/timeseries/timeseries_describe.xml"); int steps = 5; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/timeseries/" + "timeseries_step_0"+i+"_feed.xml", "src/test/ressources/timeseries/" + "timeseries_step_0"+i+"_advance.xml", describeDocument); } Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream("src/test/results/timeseries" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream("src/test/results/timeseries" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream("src/test/results/timeseries" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream("src/test/results/timeseries" + System.currentTimeMillis() + ".odv"); artifact.feed(this .readDocument("src/test/ressources/timeseries/timeseries_step_06_feed.xml"), cc); artifact.out(this .readDocument("src/test/ressources/timeseries/timeseries_step_06_out_chart.xml"), fos, cc); artifact.out(this .readDocument("src/test/ressources/timeseries/timeseries_step_06_out_statistics.xml"), fos2, cc); artifact.out(this .readDocument("src/test/ressources/timeseries/timeseries_step_06_out_csv.xml"), fos3, cc); artifact.out(this .readDocument("src/test/ressources/timeseries/timeseries_step_06_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } /** * @return */ private CallContext createCallContext() { CallMeta callMeta = new DefaultCallMeta( new PreferredLocale[] { new DefaultPreferredLocale("de_DE", 1.0f) }); CallContext cc = new TestCallContext(bootstrap.getContext(), callMeta); return cc; } /** * @param artifact * @param cc * @param describeDocument TODO * @throws Exception */ private void doNextStep(Artifact artifact, CallContext cc, String feedDocument, String advanceDocument, Document describeDocument) throws Exception { Document outputData = artifact.describe(describeDocument,cc); // this.writeDocument2Log(outputData); outputData = artifact.feed(this.readDocument(feedDocument), cc); this.check4ExceptionReport(outputData); outputData = artifact.advance(this.readDocument(advanceDocument), cc); // this.writeDocument2Log(outputData); this.check4ExceptionReport(outputData); } public void testTimeSeriesMeshArtifact() { try { log.debug("GNVArtifactsTestCase.testTimeSeriesMeshArtifact"); String artefactName = "fis_modeldata"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("TimeSeriesMesh-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("TimeSeriesMesh-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/timeseries_mesh/timeseries_describe.xml"); int steps = 7; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/timeseries_mesh/" + "timeseries_step_0"+i+"_feed.xml", "src/test/ressources/timeseries_mesh/" + "timeseries_step_0"+i+"_advance.xml", describeDocument); } // Achter Schritt Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream("src/test/results/timeseries_mesh" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream("src/test/results/timeseries_mesh" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream("src/test/results/timeseries_mesh" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream("src/test/results/timeseries_mesh" + System.currentTimeMillis() + ".odv"); artifact .feed( this .readDocument("src/test/ressources/timeseries_mesh/timeseries_step_08_feed.xml"), cc); artifact .out( this .readDocument("src/test/ressources/timeseries_mesh/timeseries_step_08_out_statistics.xml"), fos2, cc); artifact .out( this .readDocument("src/test/ressources/timeseries_mesh/timeseries_step_08_out_chart.xml"), fos, cc); artifact .out( this .readDocument("src/test/ressources/timeseries_mesh/timeseries_step_08_out_csv.xml"), fos3, cc); artifact .out( this .readDocument("src/test/ressources/timeseries_mesh/timeseries_step_08_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testVerticalProfileArtifact() { try { log.debug("GNVArtifactsTestCase.testVerticalProfileArtifact"); String artefactName = "fis_marnet"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/verticalprofile/verticalprofile_describe.xml"); int steps = 5; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/verticalprofile/" + "verticalprofile_step_0"+i+"_feed.xml", "src/test/ressources/verticalprofile/" + "verticalprofile_step_0"+i+"_advance.xml", describeDocument); } // Vierter Schritt Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream("src/test/results/verticalprofile" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream("src/test/results/verticalprofile" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream("src/test/results/verticalprofile" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream("src/test/results/verticalprofile" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "verticalprofile/" + "verticalprofile_step_06_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile/" + "verticalprofile_step_06_out_statistics.xml"), fos2, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile/" + "verticalprofile_step_06_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile/" + "verticalprofile_step_06_out_csv.xml"), fos3, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile/" + "verticalprofile_step_06_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); fos4.flush(); fos4.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testVerticalProfileMeshArtifact() { try { log.debug("GNVArtifactsTestCase.testVerticalProfileArtifact"); String artefactName = "fis_modeldata"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_describe.xml"); int steps = 9; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/verticalprofile_mesh/" + "verticalprofile_step_0"+i+"_feed.xml", "src/test/ressources/verticalprofile_mesh/" + "verticalprofile_step_0"+i+"_advance.xml", describeDocument); } // 10. Schritt Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream( "src/test/results/verticalprofile_mesh" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/verticalprofile_mesh" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream( "src/test/results/verticalprofile_mesh" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream( "src/test/results/verticalprofile_mesh" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_step_10_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_step_10_out_statistics.xml"), fos2, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_step_10_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_step_10_out_csv.xml"), fos3, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_mesh/" + "verticalprofile_step_10_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); fos4.flush(); fos4.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testVerticalProfileInstantaneousPointArtifact() { try { log.debug("GNVArtifactsTestCase.testVerticalProfileArtifact"); String artefactName = "fis_bsh_ctd"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/verticalprofile_instantaneouspoint/verticalprofile_describe.xml"); int steps = 4; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/verticalprofile_instantaneouspoint/" + "verticalprofile_step_0"+i+"_feed.xml", "src/test/ressources/verticalprofile_instantaneouspoint/" + "verticalprofile_step_0"+i+"_advance.xml", describeDocument); } // Vierter Schritt Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream( "src/test/results/verticalprofile_instantaneouspoint" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/verticalprofile_instantaneouspoint" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream( "src/test/results/verticalprofile_instantaneouspoint" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream( "src/test/results/verticalprofile_instantaneouspoint" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "verticalprofile_instantaneouspoint/" + "verticalprofile_step_05_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_instantaneouspoint/" + "verticalprofile_step_05_out_statistics.xml"), fos2, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_instantaneouspoint/" + "verticalprofile_step_05_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_instantaneouspoint/" + "verticalprofile_step_05_out_csv.xml"), fos3, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalprofile_instantaneouspoint/" + "verticalprofile_step_05_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testHorizontalProfileInstantaneousPointArtifact() { try { log.debug("GNVArtifactsTestCase." + "testHorizontalProfileInstantaneousPointArtifact"); String artefactName = "fis_delphin"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/horizontalProfile_instantaneouspoint/horizontalprofile_describe.xml"); int steps = 6; for (int i = 0; i < steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_0"+i+"_feed.xml", "src/test/ressources/horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_0"+i+"_advance.xml", describeDocument); } Document outputData = artifact.describe(describeDocument, cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream( "src/test/results/horizontalprofile_instantaneouspoint" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/horizontalprofile_instantaneouspoint" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream( "src/test/results/horizontalprofile_instantaneouspoint" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream( "src/test/results/horizontalprofile_instantaneouspoint" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_06_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_06_out_statistics.xml"), fos2,cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_06_out_chart.xml"), fos,cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_06_out_csv.xml"), fos3,cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_instantaneouspoint/" + "horizontalprofile_step_06_out_odv.xml"), fos4,cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testHorizontalProfileMeshPointArtifact() { try { log.debug("GNVArtifactsTestCase." + "testHorizontalProfileInstantaneousPointArtifact"); String artefactName = "fis_modeldata"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/horizontalProfile_mesh/horizontalprofile_describe.xml"); int steps = 9; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/horizontalProfile_mesh/" + "horizontalprofile_step_0"+i+"_feed.xml", "src/test/ressources/horizontalProfile_mesh/" + "horizontalprofile_step_0"+i+"_advance.xml", describeDocument); } Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; FileOutputStream fos4 = null; try { fos = new FileOutputStream( "src/test/results/horizontalProfile_mesh" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/horizontalProfile_mesh" + System.currentTimeMillis() + ".xml"); fos3 = new FileOutputStream( "src/test/results/horizontalProfile_mesh" + System.currentTimeMillis() + ".csv"); fos4 = new FileOutputStream( "src/test/results/horizontalProfile_mesh" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "horizontalProfile_mesh/" + "horizontalprofile_step_10_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_mesh/" + "horizontalprofile_step_10_out_statistics.xml"), fos2, cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_mesh/" + "horizontalprofile_step_10_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_mesh/" + "horizontalprofile_step_10_out_csv.xml"), fos3, cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalProfile_mesh/" + "horizontalprofile_step_10_out_odv.xml"), fos4, cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); fos4.flush(); fos4.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testHorizontalCrossSectionMeshArtifact() { try { log.debug("GNVArtifactsTestCase.testHorizontalCrossSectionMeshArtifact"); String artefactName = "fis_modeldata"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("HorizontalCrossSectionMesh-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("HorizontalCrossSectionMesh-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/horizontalcrosssection_mesh/horizontalcrosssection_describe.xml"); int steps = 5; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/horizontalcrosssection_mesh/" + "horizontalcrosssection_step_0"+i+"_feed.xml", "src/test/ressources/horizontalcrosssection_mesh/" + "horizontalcrosssection_step_0"+i+"_advance.xml", describeDocument); } Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; try { fos = new FileOutputStream( "src/test/results/horizontalcrosssection_mesh" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/horizontalcrosssection_mesh" + System.currentTimeMillis() + ".csv"); fos3 = new FileOutputStream( "src/test/results/horizontalcrosssection_mesh" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "horizontalcrosssection_mesh/" + "horizontalcrosssection_step_06_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalcrosssection_mesh/" + "horizontalcrosssection_step_06_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalcrosssection_mesh/" + "horizontalcrosssection_step_06_out_csv.xml"), fos2,cc); artifact.out(this.readDocument("src/test/ressources/" + "horizontalcrosssection_mesh/" + "horizontalcrosssection_step_06_out_odv.xml"), fos3,cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } public void testVerticalCrossSectionMeshArtifact() { try { log.debug("GNVArtifactsTestCase." + "testHVerticalCrossSectionMeshArtifact"); String artefactName = "fis_modeldata"; ArtifactFactory artifactFactory = this .getArtifactFactory(artefactName); assertNotNull(artifactFactory); log.debug("VerticalProfile-ArtifactFactory is available"); Artifact artifact = artifactFactory.createArtifact( "" + System.currentTimeMillis(), bootstrap.getContext()); assertNotNull(artifact); log.debug("VerticalProfile-Artifact is available"); CallContext cc = createCallContext(); Document describeDocument = this.readDocument("src/test/ressources/verticalcrosssection_mesh/verticalcrosssection_describe.xml"); int steps = 7; for (int i = 1; i <= steps; i++){ this.doNextStep( artifact, cc, "src/test/ressources/verticalcrosssection_mesh/" + "verticalcrosssection_step_0"+i+"_feed.xml", "src/test/ressources/verticalcrosssection_mesh/" + "verticalcrosssection_step_0"+i+"_advance.xml", describeDocument); } Document outputData = artifact.describe(describeDocument,cc); FileOutputStream fos = null; FileOutputStream fos2 = null; FileOutputStream fos3 = null; try { fos = new FileOutputStream( "src/test/results/verticalcrosssection_mesh" + System.currentTimeMillis() + ".png"); fos2 = new FileOutputStream( "src/test/results/verticalcrosssection_mesh" + System.currentTimeMillis() + ".csv"); fos3 = new FileOutputStream( "src/test/results/verticalcrosssection_mesh" + System.currentTimeMillis() + ".odv"); artifact.feed(this.readDocument("src/test/ressources/" + "verticalcrosssection_mesh/" + "verticalcrosssection_step_08_feed.xml"), cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalcrosssection_mesh/" + "verticalcrosssection_step_08_out_chart.xml"), fos, cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalcrosssection_mesh/" + "verticalcrosssection_step_08_out_csv.xml"), fos2,cc); artifact.out(this.readDocument("src/test/ressources/" + "verticalcrosssection_mesh/" + "verticalcrosssection_step_08_out_odv.xml"), fos3,cc); } catch (Exception e) { log.error(e, e); fail(); } finally { try { fos.flush(); fos.close(); fos2.flush(); fos2.close(); fos3.flush(); fos3.close(); } catch (Exception e) { log.error(e, e); } } } catch (Exception e) { log.error(e, e); fail(); } } protected void createFile(byte[] content, String fileName) { try { FileOutputStream fos = new FileOutputStream(new File(fileName)); ByteArrayInputStream bis = new ByteArrayInputStream(content); byte[] buf = new byte[4096]; while (bis.read(buf) > 0) { fos.write(buf); } fos.flush(); fos.close(); } catch (FileNotFoundException e) { log.error(e, e); } catch (IOException e) { log.error(e, e); } } /** * @param artefactName */ private ArtifactFactory getArtifactFactory(String artefactName) { log.debug("GNVArtifactsTestCase.getArtifactFactory"); ArtifactFactory[] artifactFactories = bootstrap.getArtifactFactories(); for (int i = 0; i < artifactFactories.length; i++) { if (artifactFactories[i].getName().equals(artefactName)) { log.debug("ArtifactFactory wurde gefunden."); return artifactFactories[i]; } } return null; } protected void writeDocument2Log(Document document) { log.debug(new ArtifactXMLUtilities().writeDocument2String(document)); } protected Document readDocument(String fileName) { Document returnValue = null; try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); returnValue = docBuilder.parse(new File(fileName)); } catch (ParserConfigurationException e) { log.error(e, e); } catch (SAXException e) { log.error(e, e); } catch (IOException e) { log.error(e, e); } return returnValue; } private void check4ExceptionReport(Document document) throws Exception { document = new ArtifactXMLUtilities().reInitDocument(document); String message = Config.getStringXPath(document, "/exceptionreport/exception"); if (message != null) { throw new Exception(message); } } }