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

Umbenannte Integrationstests aus Original-Quellen entfernen

parent 3cd2e612
-------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.
/*
* 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();
}
}
}
}
/*
* 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;
}
}
/*
* 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;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment