view gwt-client/src/test/java/test/sinfo/SinfoCollisionRunner.java @ 9570:531a60b7af95

failed tests will be saved to disk
author gernotbelger
date Mon, 05 Nov 2018 17:15:30 +0100
parents 86e522bc7f36
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.sinfo;

import java.io.File;
import java.io.IOException;

import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
import org.dive4elements.river.client.shared.exceptions.ServerException;
import org.dive4elements.river.client.shared.model.Data;
import org.dive4elements.river.client.shared.model.DataItem;
import org.dive4elements.river.client.shared.model.DefaultDataItem;
import org.dive4elements.river.client.shared.model.StringOptionsData;

import test.AbstractBerechnungsartenTester.River;
import test.AbstractModuleRunner;
import test.sinfo.SinfoBerechnungsartenTester.CalcMode;

/**
 * @author Domenico Nardi Tironi
 *
 */
final class SinfoCollisionRunner extends AbstractModuleRunner {

    private final int[] years;
    private final String epochs;
    private boolean isYears; // cannot be final because of the ternary expression

    public SinfoCollisionRunner(final File testFolder, final double from, final double to, final River river, final int[] years, final String epochs)
            throws ConnectionException, ServerException {
        super(testFolder, AbstractModuleRunner.Infotype.sinfo, CalcMode.sinfo_calc_collision, from, to, river);
        this.years = years;
        this.epochs = epochs;
        this.isYears = (years != null) ? (this.isYears = true) : (this.isYears = false);
    }

    @Override
    public void runTest() throws ServerException, IOException {
        /* Select River */
        super.selectRiver();

        /* Select ICalcMode */
        super.selectCalcMode();

        super.feed(new Data[] {
                new StringOptionsData("ld_mode", "ld_mode", new DataItem[] { new DefaultDataItem("distance_only", "distance_only", "distance_only") }) }); // ggf

        /* Select Range */
        super.selectRange();

        /* Year or Epoch? eigentlich vermutlich überflüssig */
        final String yeSelectStr = this.isYears ? "state.sinfo.year" : "state.sinfo.epoch";
        final Data yearEpochSelect = new StringOptionsData("ye_select", "ye_select",
                new DataItem[] { new DefaultDataItem(yeSelectStr, yeSelectStr, yeSelectStr) });
        feedAndGo(new Data[] { yearEpochSelect }, 0);

        if (this.years != null) {
            final StringBuilder sb = new StringBuilder();
            for (final int value : this.years) {
                sb.append(String.valueOf(value));
                sb.append(" ");
            }
            final Data yearsData = new StringOptionsData("years", "years", new DataItem[] { new DefaultDataItem("years", "years", sb.toString()) });
            feedAndGo(new Data[] { yearsData }, 0);
        } else if (this.epochs != null) {
            final Data data = new StringOptionsData("epochs", "epochs", new DataItem[] { new DefaultDataItem("epochs", "epochs", this.epochs) });
            feedAndGo(new Data[] { data }, 0);
        }
        describeCollection();

        super.runTests();
    }
}

http://dive4elements.wald.intevation.org