Mercurial > dive4elements > river
view gwt-client/src/test/java/test/ModuleRunnerOutput.java @ 9709:b74f817435fe
comment removed
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Wed, 27 Jan 2021 11:47:38 +0100 |
parents | 531a60b7af95 |
children |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package test; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.dive4elements.artifacts.common.utils.ClientProtocolUtils; import org.dive4elements.artifacts.httpclient.http.HttpClient; import org.dive4elements.river.client.server.ChartServiceHelper; import org.junit.Assert; import org.w3c.dom.Document; /** * @author Domenico Nardi Tironi * */ public class ModuleRunnerOutput { private static final String IGNORE_ERSTELLDATUM = "# Datum der Erstellung"; private static final String IGNORE_FLYS_VERSION = "# FLYS-Version:"; private static final String IGNORE_BEARBEITER = "# Bearbeiter:"; private static final String LINE_SEPARATOR = System.getProperty("line.separator"); final FilenameSupplier filename; final String outputModeName; // private final String collectionIdentifier; private final Map<String, String> params; public final String getOutputModename() { return this.outputModeName; } public ModuleRunnerOutput(final FilenameSupplier filename, final String outputModeName, final String currentKm) { this.filename = filename; this.outputModeName = outputModeName; this.params = getChartExportAttributeMap(currentKm, outputModeName); } protected final void assertAndWriteToFile(final HttpClient client, final String collectionId, final File testFolder) throws IOException { final String type = "csv"; final String enc = "UTF-8";// req.getParameter("encoding"); final URL expectedResource = getClass().getResource(this.filename.getFilename()); final Document attr = ChartServiceHelper.getChartAttributes(this.params); final Document request = ClientProtocolUtils.newOutCollectionDocument(collectionId, this.outputModeName, type, attr); final InputStream response = client.collectionOut(request, collectionId, this.outputModeName); final String actual = deleteErstelldatum(IOUtils.toString(response, "UTF-8")); final String expected = deleteErstelldatum(FileUtils.readFileToString(new File(expectedResource.getFile()), enc)); final File fileTmp = doGetWriteToDisk(actual, testFolder); Assert.assertEquals(expected, actual); fileTmp.delete(); // if assert fails, file won't be deleted } public final File doGetWriteToDisk(final String actual_text, final File testFolder) throws FileNotFoundException, IOException { final File file = new File(testFolder, this.filename.getFilename()); new File(file.getParent()).mkdir(); // final String name = mode; // final String type = "csv"; FileUtils.write(file, actual_text, "UTF-8"); return file; } private final String deleteErstelldatum(final String input) { String result = ""; final String[] lines = input.split(LINE_SEPARATOR); for (final String line : lines) { if (!line.contains(IGNORE_ERSTELLDATUM) && !line.contains(IGNORE_FLYS_VERSION) && !line.contains(IGNORE_BEARBEITER)) { result = result + line + LINE_SEPARATOR; } } return result; } private final Map<String, String> getChartExportAttributeMap(final String currentKm, final String outputmodeName) { // From ChartOutputServiceImpl final Map<String, String> attr = new HashMap<String, String>(); attr.put("width", "-1"); // req.getParameter("width")); attr.put("height", "-1"); // req.getParameter("height")); // attr.put("minx", null);// req.getParameter("minx")); // attr.put("maxx", req.getParameter("maxx")); // attr.put("miny", req.getParameter("miny")); // attr.put("maxy", req.getParameter("maxy")); attr.put("format", "csv"); // req.getParameter("format")); attr.put("export", "true");// req.getParameter("export")); if (currentKm != null) attr.put("km", currentKm);// req.getParameter("currentKm")); // encoding? // Weiteres (nicht mehr von CHartOutputServiceImpl, sondern von URL-Parametern): attr.put("type", outputmodeName); attr.put("locale", "de"); attr.put("timestamp", String.valueOf(System.currentTimeMillis())); attr.put("encoding", "windows-1252"); return attr; } }