Commit 1c8a38fe authored by Uwe Peuker's avatar Uwe Peuker
Browse files

Umbenannte Integrationstests aus Original-Quellen entfernen

parent 3cd2e612
Loading
Loading
Loading
Loading
+0 −31
Original line number Diff line number Diff line

-------14.01.2018 11:25:32,184:+0100(TID:......) ---------------------- STATUS
Ausgabedatei angelegt.

#000001 14.01.2018 11:25:32,181:+0100 (TID:000010) ---------------------- 
INFO   : MeldungeLoeschen
Aktuelle Debugeinstellungen
----------------------------------------------
Registrierte DebugLogger: 
  Name: DEFAULT-DEBUG  Level: ALL
  Name: de.bsvrz.kex.lmstic3.MeldungenLoeschen  Level: INFO
  Name: global  Level: null
  Name: com.bitctrl.resource.Configuration  Level: null
  Name: MeldungeLoeschen  Level: ALL
  Name:   Level: INFO


#000002 14.01.2018 11:25:32,185:+0100 (TID:000010) ---------------------- 
INFO   : MeldungeLoeschen
Aufrufargumente von MeldungeLoeschen: ArgumentList[-debugLevelStdErrText=INFO, -debugLevelFileText=INFO]

#000003 14.01.2018 11:25:32,190:+0100 (TID:000010) ---------------------- 
INFO   : MeldungeLoeschen.de.bsvrz.dav.daf.main.ClientDavConnection
Datenverteiler-Applikationsfunktionen 'de.bsvrz.dav.daf', Release: Kernsoftware 3.8.0, Version: d58abd853623583ae993aeaddb28ed369c11fc37, Stand: 31.05.2016 08:46:04

#000006 14.01.2018 11:25:32,230:+0100 (TID:000010) ###################### 
FEHLER : MeldungeLoeschen.de.bsvrz.dav.daf.communication.tcpCommunication.TCP_IP_Communication
Fehler beim Verbindungsaufbau: Verbindung zum Rechner localhost auf TCP-Port 8083 nicht möglich

-------14.01.2018 11:25:32,270:+0100(TID:......) ---------------------- STATUS
Ausgabedatei korrekt abgeschlossenen.
+0 −203
Original line number Diff line number Diff line
/*
 * Segment 2 (KEx), SWE LMS-TIC3
 * Copyright (C) 2016 BitCtrl Systems GmbH 
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library 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 Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 *
 * Contact Information:
 * BitCtrl Systems GmbH
 * Weißenfelser Straße 67
 * 04229 Leipzig
 * Phone: +49 341-490670
 * mailto: info@bitctrl.de
 */

package de.bsvrz.kex.lmstic3;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.bitctrl.resource.Configuration;
import com.bitctrl.util.logging.LoggerTools;

import de.bsvrz.dav.daf.main.ClientDavConnection;
import de.bsvrz.dav.daf.main.config.ConfigurationChangeException;
import de.bsvrz.dav.daf.main.config.ConfigurationObject;
import de.bsvrz.dav.daf.main.config.MutableSet;
import de.bsvrz.dav.daf.main.config.MutableSetChangeListener;
import de.bsvrz.dav.daf.main.config.SystemObject;
import de.bsvrz.sys.funclib.commandLineArgs.ArgumentList;
import de.bsvrz.sys.funclib.debug.Debug;

/**
 * Löscht alle vorhandenen TMC- und TIC3-Meldungen.
 *
 * @author BitCtrl Systems GmbH, Gieseler
 * @version $Id: $
 */
public class MeldungenLoeschen implements MutableSetChangeListener {

	private static String lmsPid = "lms.test";

	/** Der Logger der Klassse. */
	private static Logger log = Logger.getLogger(MeldungenLoeschen.class.getName());

	private static ClientDavConnection verbindung;

	/**
	 * Initialisiert den Testfall.
	 *
	 * @throws Exception
	 *             bei einem Fehler.
	 */
	@BeforeClass
	public static void beforeClass() throws Exception {
		// final ObjektFactory factory;

		final Configuration konfig;
		final Level level;

		konfig = Configuration.getConfiguration();
		// level = Level.parse(konfig.getString("debug.level"));
		level = Level.parse("INFO");
		LoggerTools.setLoggerLevel(level);
		MeldungenLoeschen.log.setLevel(level);

		final String[] args = { "-debugLevelStdErrText=INFO", "-debugLevelFileText=INFO" };
		final ArgumentList al = new ArgumentList(args);

		MeldungenLoeschen.log.info("Stelle Verbindung zum Datenverteiler her ...");
		Debug.init("MeldungeLoeschen", al);
		MeldungenLoeschen.verbindung = new ClientDavConnection();
		// MeldungenLoeschen.verbindung.getClientDavParameters().setDavCommunicationAddress(konfig.getString("dav.host"));
		// MeldungenLoeschen.verbindung.getClientDavParameters().setDavCommunicationSubAddress(konfig.getInt("dav.port"));
		// MeldungenLoeschen.verbindung.connect();
		// MeldungenLoeschen.verbindung.login(konfig.getString("dav.benutzer"),
		// konfig.getString("dav.kennwort"));

		MeldungenLoeschen.verbindung.getClientDavParameters().setDavCommunicationAddress("localhost");
		MeldungenLoeschen.verbindung.getClientDavParameters().setDavCommunicationSubAddress(8083);
		MeldungenLoeschen.verbindung.connect();
		MeldungenLoeschen.verbindung.login("Tester", "geheim");

		// factory = DefaultObjektFactory.getInstanz();
		// factory.setDav(MeldungenLoeschen.verbindung);
	}

	/**
	 * Setup-Methode.
	 *
	 * @throws Exception
	 *             bei Ausnahmen
	 */
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		System.out.println("Alle TMC- und TIC3-Meldungen werden gelöscht!");
	}

	/**
	 * Liste der Meldungen.
	 */
	private List<SystemObject> meldungen;

	/**
	 * Lock-Objekt.
	 */
	private Object myLock;

	/**
	 * L&ouml;scht alle RDS-Meldungen.
	 */
	@Test
	public void loescheMeldungen() {
		loescheMeldungen("TMCMeldungen", "typ.tmcVerkehrsMeldung", "TMC-Meldungen");
		loescheMeldungen("TMCTIC3Meldungen", "typ.tmcTic3infoMeldung", "TIC3-Meldungen");
	}

	private void loescheMeldungen(final String menge, final String typ, final String name) {

		final SystemObject lms = MeldungenLoeschen.verbindung.getDataModel().getObject(lmsPid);
		Assert.assertNotNull(lms);
		try {
			final MutableSet meldungsmenge = ((ConfigurationObject) lms).getMutableSet(menge);
			Assert.assertNotNull(meldungsmenge);
			meldungsmenge.addChangeListener(this);
			System.out.println("Alle " + name + " am Objekt '" + lms + "' werden gelöscht!");
			meldungen = meldungsmenge.getElements();
			if (meldungen.size() != 0) {
				final List<SystemObject> mi = new ArrayList<>(meldungen);
				for (final SystemObject object : mi) {
					System.out.println("Meldung '" + object + "' wird gelöscht!");
					meldungsmenge.remove(object);
				}

				myLock = new Object();

				synchronized (myLock) {
					try {
						myLock.wait(10000);
					} catch (final InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				Assert.assertTrue(meldungen.size() == 0);
				Assert.assertTrue(meldungsmenge.getElements().size() == 0);
			} else {
				System.out.println("keine Meldungen aus der Menge '" + menge + "' zu löschen");
			}

			// RDS-Meldungen, die nicht in der Menge enthalten sind:
			final List<SystemObject> robjekte = MeldungenLoeschen.verbindung.getDataModel().getType(typ).getElements();
			if (robjekte.size() > 0) {
				System.out.println("lösche weitere " + robjekte.size() + " " + name);
				for (final SystemObject so : robjekte) {
					System.out.println("Meldung '" + so + "' wird gelöscht!");
					so.invalidate();
				}
			}

		} catch (final Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public void update(final MutableSet set, final SystemObject[] addedObjects, final SystemObject[] removedObjects) {
		// System.out.println("gelöschte Objekte: " + removedObjects);
		for (final SystemObject so : removedObjects) {
			meldungen.remove(so);
			try {
				so.invalidate();
			} catch (final ConfigurationChangeException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		if ((meldungen.size() == 0) && (myLock != null)) {
			synchronized (myLock) {
				myLock.notify();
			}
		}
	}

}
+0 −154
Original line number Diff line number Diff line
/*
 * Segment 2 (KEx), SWE LMS-TIC3
 * Copyright (C) 2016 BitCtrl Systems GmbH 
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library 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 Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 *
 * Contact Information:
 * BitCtrl Systems GmbH
 * Weißenfelser Straße 67
 * 04229 Leipzig
 * Phone: +49 341-490670
 * mailto: info@bitctrl.de
 */

package de.bsvrz.kex.lmstic3.vew;

import java.util.logging.Level;
import java.util.logging.Logger;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.bitctrl.resource.Configuration;
import com.bitctrl.util.logging.LoggerTools;

import de.bsvrz.dav.daf.main.ClientDavConnection;
import de.bsvrz.dav.daf.main.ClientSenderInterface;
import de.bsvrz.dav.daf.main.Data;
import de.bsvrz.dav.daf.main.DataDescription;
import de.bsvrz.dav.daf.main.ResultData;
import de.bsvrz.dav.daf.main.SenderRole;
import de.bsvrz.dav.daf.main.config.ConfigurationArea;
import de.bsvrz.dav.daf.main.config.ConfigurationObject;
import de.bsvrz.dav.daf.main.config.DataModel;
import de.bsvrz.dav.daf.main.config.DynamicObjectType;
import de.bsvrz.dav.daf.main.config.MutableSet;
import de.bsvrz.dav.daf.main.config.SystemObject;
import de.bsvrz.kex.lmstic3.MeldungenLoeschen;
import de.bsvrz.kex.lmstic3.vew.daten.DavDatenModell;

/**
 * Erzeugt eine TMC-Meldung im Datenverteiler.
 *
 * @author BitCtrl Systems GmbH, Gieseler
 */
public class ErzeugeMeldung implements ClientSenderInterface {
	/** Der Logger der Klassse. */
	private static Logger log = Logger.getLogger(MeldungenLoeschen.class.getName());

	/** DAV-Connection. */
	public static ClientDavConnection verbindung;

	@BeforeClass
	public static void beforeClass() throws Exception {

		final Configuration konfig;
		final Level level;

		konfig = Configuration.getConfiguration();
		level = Level.parse(konfig.getString("debug.level"));
		LoggerTools.setLoggerLevel(level);
		ErzeugeMeldung.log.setLevel(level);

		ErzeugeMeldung.log.info("Stelle Verbindung zum Datenverteiler her ...");
		ErzeugeMeldung.verbindung = new ClientDavConnection();
		ErzeugeMeldung.verbindung.getClientDavParameters().setDavCommunicationAddress(konfig.getString("dav.host"));
		ErzeugeMeldung.verbindung.getClientDavParameters().setDavCommunicationSubAddress(konfig.getInt("dav.port"));
		ErzeugeMeldung.verbindung.connect();
		ErzeugeMeldung.verbindung.login(konfig.getString("dav.benutzer"), konfig.getString("dav.kennwort"));
	}

	/**
	 * Prefix der PID der zu erzeugenden Meldung.
	 */
	private final String meldungsPidPrefix = "tmcmeldungtest.";

	/**
	 * Landesmeldestelle.
	 */
	private final String landesmeldeStelle = "lms.test";

	@Override
	public void dataRequest(final SystemObject object, final DataDescription dataDescription, final byte state) {
		// TODO Auto-generated method stub
	}

	/**
	 * Erzeugt eine TMC-Meldung und versendet diese an den DaV.
	 */
	@Test
	public void erzeugeMeldung() {

		final SystemObject lms = ErzeugeMeldung.verbindung.getDataModel().getObject(landesmeldeStelle);
		SystemObject meldung = null;

		try {
			final MutableSet meldungsmenge = ((ConfigurationObject) lms).getMutableSet("TMCMeldungen");

			final DataModel model = ErzeugeMeldung.verbindung.getDataModel();

			final String meldungsPid = meldungsPidPrefix + String.valueOf(System.currentTimeMillis());

			meldung = model.getObject(meldungsPid);
			if (meldung == null) {
				final ConfigurationArea area = ErzeugeMeldung.verbindung.getLocalConfigurationAuthority()
						.getConfigurationArea();
				System.out.println("Die neue Meldung '" + meldungsPid + "' wird angelegt");
				meldung = area.createDynamicObject((DynamicObjectType) model.getType("typ.tmcVerkehrsMeldung"),
						meldungsPid, "Testmeldung " + meldungsPid);
				meldungsmenge.add(meldung);
			}

			System.out.println("Sende Daten für die Meldung '" + meldung + "', PID: " + meldung.getPid());

			DavDatenModell.getInstanz().setVerbindung(ErzeugeMeldung.verbindung);
			final TMCMeldung m = new TMCMeldung(meldung);

			final DataDescription dd = new DataDescription(model.getAttributeGroup("atg.tmcVerkehrsMeldung"),
					model.getAspect("asp.tmcSenden"));

			ErzeugeMeldung.verbindung.subscribeSender(this, m.getSystemObject(), dd, SenderRole.source());

			final Data data = ErzeugeMeldung.verbindung.createData(dd.getAttributeGroup());
			// m.getMeldungsDaten().publizieren(data);
			final ResultData meldungsdaten = new ResultData(m.getSystemObject(), dd, System.currentTimeMillis(), data);
			ErzeugeMeldung.verbindung.sendData(meldungsdaten);

			// etwas warten, damit Quelle nicht verschwindet
			Thread.sleep(200000);
		} catch (final Exception e) {
			e.printStackTrace();
			Assert.fail(e.getMessage());
		}
	}

	@Override
	public boolean isRequestSupported(final SystemObject object, final DataDescription dataDescription) {
		// TODO Auto-generated method stub
		return false;
	}
}
+0 −318

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −211
Original line number Diff line number Diff line
/*
 * Segment 2 (KEx),  SWE 2.1 LMS
 * Copyright (C) 2007 BitCtrl Systems GmbH
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library 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 Lesser General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
 *
 * Contact Information:
 * BitCtrl Systems GmbH
 * Wei�enfelser Stra�e 67
 * 04229 Leipzig
 * Phone: +49 341-490670
 * mailto: info@bitctrl.de
 */

package de.bsvrz.kex.lmstic3.vew;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.bitctrl.resource.Configuration;
import com.bitctrl.util.logging.LoggerTools;

import de.bsvrz.dav.daf.main.ClientDavConnection;
import de.bsvrz.dav.daf.main.ClientSenderInterface;
import de.bsvrz.dav.daf.main.Data;
import de.bsvrz.dav.daf.main.DataDescription;
import de.bsvrz.dav.daf.main.ResultData;
import de.bsvrz.dav.daf.main.SenderRole;
import de.bsvrz.dav.daf.main.config.ConfigurationArea;
import de.bsvrz.dav.daf.main.config.ConfigurationChangeException;
import de.bsvrz.dav.daf.main.config.ConfigurationObject;
import de.bsvrz.dav.daf.main.config.DynamicObjectType;
import de.bsvrz.dav.daf.main.config.MutableSet;
import de.bsvrz.dav.daf.main.config.SystemObject;
import de.bsvrz.kex.lmstic3.MeldungenLoeschen;
import de.bsvrz.kex.lmstic3.empfang.dekoder.TIC3InfoDatei;
import de.bsvrz.kex.lmstic3.empfang.dekoder.TIC3InfoDateiDaten;
import de.bsvrz.kex.lmstic3.empfang.dekoder.TIC3InfoDateiException;
import de.bsvrz.kex.lmstic3.vew.daten.DavDatenModell;
import de.bsvrz.kex.lmstic3.vew.daten.tic.TIC3Exception;
import de.bsvrz.kex.lmstic3.vew.daten.tic.TIC3Meldung;
import de.bsvrz.kex.lmstic3.vew.daten.tic.TIC3MeldungsDaten;

/**
 * Erzeugt eine RDS-Meldung im Datenverteiler.
 *
 * @author BitCtrl Systems GmbH, Gieseler
 */
public class VersendeMeldungen implements ClientSenderInterface {
	/** Der Logger der Klassse. */
	private static Logger log = Logger.getLogger(MeldungenLoeschen.class.getName());

	private static ClientDavConnection verbindung;

	private static Configuration konfig;

	/**
	 * @throws Exception
	 */
	@BeforeClass
	public static void beforeClass() throws Exception {

		final Level level;

		VersendeMeldungen.konfig = Configuration.getConfiguration();
		level = Level.parse(VersendeMeldungen.konfig.getString("debug.level"));
		LoggerTools.setLoggerLevel(level);
		VersendeMeldungen.log.setLevel(level);

		VersendeMeldungen.log.info("Stelle Verbindung zum Datenverteiler her ...");
		VersendeMeldungen.verbindung = new ClientDavConnection();
		VersendeMeldungen.verbindung.getClientDavParameters()
				.setDavCommunicationAddress(VersendeMeldungen.konfig.getString("dav.host"));
		VersendeMeldungen.verbindung.getClientDavParameters()
				.setDavCommunicationSubAddress(VersendeMeldungen.konfig.getInt("dav.port"));
		VersendeMeldungen.verbindung.connect();
		VersendeMeldungen.verbindung.login(VersendeMeldungen.konfig.getString("dav.benutzer"),
				VersendeMeldungen.konfig.getString("dav.kennwort"));

	}

	/**
	 * Prefix der PID der zu erzeugenden Meldung.
	 */
	private final String meldungsPidPrefix = "rdsmeldungtest.";

	/**
	 * Landesmeldestelle.
	 */
	private final String landesmeldeStelle = "lmst.bw";

	private List<TIC3Meldung> bildeMeldungenAusDatei(final String dateiname)
			throws TIC3InfoDateiException, TIC3Exception {
		final TIC3InfoDatei tid = new TIC3InfoDatei(new File(dateiname));
		final List<TIC3Meldung> meldungen = new ArrayList<>();

		final TIC3InfoDateiDaten bildeMeldungen = tid.bildeMeldungen(false);

		for (final TIC3MeldungsDaten meldungsdaten : bildeMeldungen.getMeldungen()) {
			meldungen.add(neueMeldung(meldungsdaten));
		}
		return meldungen;
	}

	private List<TIC3Meldung> bildeMeldungenAusDateien() throws TIC3InfoDateiException, TIC3Exception {
		final List<TIC3Meldung> meldungen = new ArrayList<>();
		final String dateiliste = VersendeMeldungen.konfig.getString("VersandMeldungen");

		for (final String datei : dateiliste.split(",")) {
			meldungen.addAll(bildeMeldungenAusDatei(datei));
		}

		return meldungen;
	}

	@Override
	public void dataRequest(final SystemObject object, final DataDescription dataDescription, final byte state) {
		// TODO Auto-generated method stub

	}

	/**
	 * Erzeugt eine RDS-Meldung und versendet diese an den DaV.
	 */
	@Test
	public void erzeugeMeldungen() {

		final SystemObject lms = VersendeMeldungen.verbindung.getDataModel().getObject(landesmeldeStelle);

		try {
			final DataDescription dd = new DataDescription(
					VersendeMeldungen.verbindung.getDataModel().getAttributeGroup("atg.rdsMeldung"),
					VersendeMeldungen.verbindung.getDataModel().getAspect("asp.rdsSenden"));

			DavDatenModell.getInstanz().setVerbindung(VersendeMeldungen.verbindung);

			final MutableSet meldungsmenge = ((ConfigurationObject) lms).getMutableSet("RDSMeldungen");

			for (final TIC3Meldung meldung : bildeMeldungenAusDateien()) {
				meldungsmenge.add(meldung.getSystemObject());

				System.out.println(
						"Sende Daten für die Meldung '" + meldung + "', PID: " + meldung.getSystemObject().getPid());

				VersendeMeldungen.verbindung.subscribeSender(this, meldung.getSystemObject(), dd, SenderRole.source());

				final Data data = VersendeMeldungen.verbindung.createData(dd.getAttributeGroup());

				meldung.getMeldungsDaten().publizieren(data, null);
				final ResultData meldungsdaten = new ResultData(meldung.getSystemObject(), dd,
						System.currentTimeMillis(), data);
				VersendeMeldungen.verbindung.sendData(meldungsdaten);
			}

			// etwas warten, damit Quelle nicht verschwindet
			Thread.sleep(2000000);
		} catch (final Exception e) {
			e.printStackTrace();
			Assert.fail(e.getMessage());
		}
	}

	@Override
	public boolean isRequestSupported(final SystemObject object, final DataDescription dataDescription) {
		// TODO Auto-generated method stub
		return false;
	}

	private TIC3Meldung neueMeldung(final TIC3MeldungsDaten meldungsdaten) throws TIC3Exception {
		final ConfigurationArea area = VersendeMeldungen.verbindung.getLocalConfigurationAuthority()
				.getConfigurationArea();

		final String pid = meldungsdaten.bildePid();
		SystemObject so = VersendeMeldungen.verbindung.getDataModel().getObject(pid);
		if (so == null) {
			try {
				so = area.createDynamicObject(
						(DynamicObjectType) VersendeMeldungen.verbindung.getDataModel().getType("typ.rdsMeldung"), pid,
						pid);
				System.out.println("Die Meldung " + pid + " wurde angelegt");
			} catch (final ConfigurationChangeException e) {
				throw new TIC3Exception(e.getMessage());
			}
		} else {
			System.out.println("Die Meldung " + pid + " existiert bereits");
		}

		final TIC3Meldung rdsmeldung = new TIC3Meldung(so, meldungsdaten);

		return rdsmeldung;
	}
}