view gwt-client/src/test/java/test/SinfoCollisionRunner.java @ 9417:46e3e23cca0b

sinfo.collision jUnit-Test
author gernotbelger
date Thu, 16 Aug 2018 17:32:05 +0200
parents
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.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.BerechnungsartenTester.CalcMode;
import test.BerechnungsartenTester.FilenameMapper;
import test.BerechnungsartenTester.River;

/**
 * @author Domenico Nardi Tironi
 *
 */
public 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 String username, final String password, final FilenameMapper file, final double from, final double to, final River river,
            final int[] years, final String epochs) throws ConnectionException, ServerException {
        super(username, password, AbstractModuleRunner.Infotype.sinfo, CalcMode.sinfo_calc_collision, file, from, to, river);
        this.years = years;
        this.epochs = epochs;
        this.isYears = (years != null) ? (this.isYears = true) : (this.isYears = false);
    }

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

        /* Select CalcMode */
        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.export(exportToFile);
    }
}

http://dive4elements.wald.intevation.org