Package de.kappich.pat.testumg.util
Class DavTestEnvironment
- java.lang.Object
-
- de.kappich.pat.testumg.util.DavTestEnvironment
-
- All Implemented Interfaces:
DafApplicationEnvironment
public class DavTestEnvironment extends java.lang.Object implements DafApplicationEnvironment
Klasse zur einfachen Realisierung von JUnit-Tests, die eine Datenverteilerumgebung benötigen.Alternativen zu dieser Klasse:
- Die Klasse
SingleDavStarter
ist generell etwas komfortabler zu benutzen und bieten mehr Funktionen. - Die Klasse
MultiDavTestEnvironment
erlaubt das Testen von mehreren Datenverteilern gleichzeitig.
-
-
Constructor Summary
Constructors Constructor Description DavTestEnvironment(java.lang.String debugLevel)
Erzeugt eine neue Testumgebung und initialisiert die Debug-Bibliothek.DavTestEnvironment(java.lang.String debugLevelStdErr, java.lang.String debugLevelFile)
Erzeugt eine neue Testumgebung und initialisiert die Debug-Bibliothek.
-
Method Summary
Modifier and Type Method Description de.bsvrz.dav.daf.main.ClientDavInterface
connect()
Erstellt eine Datenverteilerverbindungjava.io.File
copyResources(java.lang.String resourceNamePrefix, java.lang.String destinationDirectoryName)
Kopiert Resourcedateien mit einem angegebenen Präfix in ein neues Verzeichnis.FakeParamApp
createFakeParamApp()
Sorgt dafür, dass statt der normalen Parametrierung eine Minimalimplementierung der Parametrierung verwendet wird, die einfacher fernzusteuern ist und die unabhängig von Benutzerrechten arbeitet.void
deleteTemporaryDirectory()
Löscht das temporäre Verzeichnis, das mit der Methode getTemporaryDirectory() erzeugt wurde.int
getAppPort()
Gibt den Port zurück, über den sich Applikationen mit dem Datenverteiler verbinden sollenjava.lang.String
getConfigurationAuthority()
Gibt den KV zurückjava.lang.String
getDavHostname()
int
getDavTcpPort()
FakeParamApp
getFakeParamApp()
Gibt dieFakeParamApp
der Testumgebung zurückjava.nio.file.Path
getRootDir()
Gibt das Wurzelverzeichnis der Testumgebung zurück.java.io.File
getTemporaryDirectory()
Liefert ein temporäres Verzeichnis, dass vom Testfall zur Ablage von Dateien verwendet werden kann zurück.java.nio.file.Path
getWorkingDirectory()
Gibt das datenverteilerspezifische Verzeichnis der Testumgebung zurückvoid
setAdditionalTransmitterArgs(java.lang.String... additionalTransmitterArgs)
void
setConfigurationDebugLevel(java.lang.String configurationDebugLevel)
void
setParamAppType(ParamAppType paramAppType)
Setzt die Art der Parametrierungs-Applikationvoid
setParamDebugLevel(java.lang.String paramDebugLevel)
void
setStartDavInSameProcess(boolean startDavInSameProcess)
Setzt, ob der Datenverteiler im selben Prozess gestartet werden soll (Hilfreich zum Debuggen des Datenverteilers)void
setTransmitterDebugLevel(java.lang.String transmitterDebugLevel)
ConfigurationController
startConfig(java.lang.String... configurationAreaPids)
Öffnet die Konfiguration im Offline-Modus.void
startDav(java.lang.String... configurationAreaPids)
Startet die Datenverteiler Umgebung.de.bsvrz.dav.daf.main.ClientDavInterface
startDavConnection()
de.bsvrz.dav.daf.main.ClientDavInterface
startDavConnection(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
de.bsvrz.dav.daf.main.ClientDavInterface
startDavConnection(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters, java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials clientCredentials)
de.bsvrz.dav.daf.main.ClientDavInterface
startDavConnection(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials clientCredentials)
void
startDavWithAccessControl(de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, boolean containsDaVFiles, java.lang.String... accessControlPlugins)
Startet den Datenverteiler mit aktivierter Rechteprüfungjava.lang.Process
startJavaProcess(java.lang.String outputPrefix, java.lang.String errorOutputPrefix, java.lang.String className, int maxHeapMegaBytes, java.lang.String... arguments)
java.lang.Process
startJavaProcessAsDavClient(java.lang.String outputPrefix, java.lang.String errorOutputPrefix, java.lang.String className, java.lang.String debugLevel, int maxHeapMegaBytes, java.lang.String... arguments)
void
startOperatingMessageManagement()
void
stopAll(boolean withFileDeletion)
void
stopAllConnections()
void
stopConfig(boolean withFileDeletion)
Schließt die im Offline-Modus geöffnete Konfiguration wieder.void
stopDav(boolean withFileDeletion)
void
stopDavConnection(de.bsvrz.dav.daf.main.ClientDavInterface connection)
void
useDav(java.lang.String davHostname, int davTcpPort)
-
-
-
Constructor Detail
-
DavTestEnvironment
public DavTestEnvironment(java.lang.String debugLevel)
Erzeugt eine neue Testumgebung und initialisiert die Debug-Bibliothek.- Parameters:
debugLevel
- Zu verwendender Debuglevel für die Standard-Error-Ausgabe. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".
-
DavTestEnvironment
public DavTestEnvironment(java.lang.String debugLevelStdErr, java.lang.String debugLevelFile)
Erzeugt eine neue Testumgebung und initialisiert die Debug-Bibliothek.- Parameters:
debugLevelStdErr
- Zu verwendender Debuglevel für die Standard-Error-Ausgabe. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".debugLevelFile
- Zu verwendender Debuglevel für die Datei-Ausgabe. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".
-
-
Method Detail
-
getTemporaryDirectory
public java.io.File getTemporaryDirectory()
Liefert ein temporäres Verzeichnis, dass vom Testfall zur Ablage von Dateien verwendet werden kann zurück. Beim ersten Aufruf der Methode wird das temporäre Verzeichnis im aktuellen Arbeitsverzeichnis erzeugt. Bei weiteren Aufrufen wird das im ersten Aufruf erzeugte Verzeichnis unverändert zurückgegeben. Der Name ergibt sich aus dem Klassennamen der Klasse, die den Konstruktor der Testumgebung aufgerufen hat, mit dem Präfix "TmpFiles-". Falls das Verzeichnis im ersten Aufruf der Methode bereits existiert wird es gelöscht und dann neu angelegt.- Returns:
- File-Objekt des neu erzeugten temporären Verzeichnisses.
-
deleteTemporaryDirectory
public void deleteTemporaryDirectory()
Löscht das temporäre Verzeichnis, das mit der Methode getTemporaryDirectory() erzeugt wurde. Wenn die Methode getTemporaryDirectory noch nicht aufgerufen wurde, dann tut diese Methode nichts.
-
useDav
public void useDav(java.lang.String davHostname, int davTcpPort)
-
setConfigurationDebugLevel
public void setConfigurationDebugLevel(java.lang.String configurationDebugLevel)
-
setTransmitterDebugLevel
public void setTransmitterDebugLevel(java.lang.String transmitterDebugLevel)
-
setParamDebugLevel
public void setParamDebugLevel(java.lang.String paramDebugLevel)
-
startDav
public void startDav(java.lang.String... configurationAreaPids)
Startet die Datenverteiler Umgebung.- Parameters:
configurationAreaPids
- Enhält die Pids von Konfigurationsbereichen, die vor dem Start importiert und aktiviert werden sollen. Wenn ein Element den Wertnull
hat, dann werden alle bis dahin im Array enthaltenen Pids importiert und aktiviert, bevor die nachfolgenden Pids bearbeitet werden. Mehrere Varianten des gleichen Bereichs können durch Angabe eine Versionsnummer unterschieden werden. Dabei wird die Versionsnummer mit Doppelpunkt separiert an die Pid angehangen. Es wird dann eine Versorgungsdatei gesucht, deren Name aus der Pid, der Versionsnummer und der Endung ".xml" gebildet wird. Im Dateinamen darf dabei kein Doppelpunkt enthalten sein.
-
startDavWithAccessControl
public void startDavWithAccessControl(de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, boolean containsDaVFiles, java.lang.String... accessControlPlugins)
Startet den Datenverteiler mit aktivierter Rechteprüfung
-
startConfig
public ConfigurationController startConfig(java.lang.String... configurationAreaPids)
Öffnet die Konfiguration im Offline-Modus.- Parameters:
configurationAreaPids
- Enthält die Pids von Konfigurationsbereichen, die vor dem Start importiert und aktiviert werden sollen. Wenn ein Element den Wertnull
hat, dann werden alle bis dahin im Array enthaltenen Pids importiert und aktiviert, bevor die
-
stopConfig
public void stopConfig(boolean withFileDeletion)
Schließt die im Offline-Modus geöffnete Konfiguration wieder.- Parameters:
withFileDeletion
- Fallstrue
, dann wird das Verzeichnis mit den temporären Dateien gelöscht.
-
startOperatingMessageManagement
public void startOperatingMessageManagement()
-
stopDav
public void stopDav(boolean withFileDeletion)
-
stopAll
public void stopAll(boolean withFileDeletion)
-
startDavConnection
public de.bsvrz.dav.daf.main.ClientDavInterface startDavConnection()
-
startDavConnection
public de.bsvrz.dav.daf.main.ClientDavInterface startDavConnection(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials clientCredentials)
-
startDavConnection
public de.bsvrz.dav.daf.main.ClientDavInterface startDavConnection(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
-
startDavConnection
public de.bsvrz.dav.daf.main.ClientDavInterface startDavConnection(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters, java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials clientCredentials)
-
stopDavConnection
public void stopDavConnection(de.bsvrz.dav.daf.main.ClientDavInterface connection)
-
stopAllConnections
public void stopAllConnections()
-
startJavaProcessAsDavClient
public java.lang.Process startJavaProcessAsDavClient(java.lang.String outputPrefix, java.lang.String errorOutputPrefix, java.lang.String className, java.lang.String debugLevel, int maxHeapMegaBytes, java.lang.String... arguments)
-
startJavaProcess
public java.lang.Process startJavaProcess(java.lang.String outputPrefix, java.lang.String errorOutputPrefix, java.lang.String className, int maxHeapMegaBytes, java.lang.String... arguments)
-
setStartDavInSameProcess
public void setStartDavInSameProcess(boolean startDavInSameProcess)
Setzt, ob der Datenverteiler im selben Prozess gestartet werden soll (Hilfreich zum Debuggen des Datenverteilers)- Parameters:
startDavInSameProcess
- Datenverteiler im selben Prozess starten?
-
createFakeParamApp
public FakeParamApp createFakeParamApp()
Sorgt dafür, dass statt der normalen Parametrierung eine Minimalimplementierung der Parametrierung verwendet wird, die einfacher fernzusteuern ist und die unabhängig von Benutzerrechten arbeitet.- Returns:
- Klasse um Fake-Parametrierung fernzusteuern
-
setAdditionalTransmitterArgs
public void setAdditionalTransmitterArgs(java.lang.String... additionalTransmitterArgs)
-
getDavHostname
public java.lang.String getDavHostname()
-
getDavTcpPort
public int getDavTcpPort()
-
connect
public de.bsvrz.dav.daf.main.ClientDavInterface connect()
Description copied from interface:DafApplicationEnvironment
Erstellt eine Datenverteilerverbindung- Specified by:
connect
in interfaceDafApplicationEnvironment
- Returns:
- Datenverteilerverbindung
-
getRootDir
public java.nio.file.Path getRootDir()
Description copied from interface:DafApplicationEnvironment
Gibt das Wurzelverzeichnis der Testumgebung zurück. Hier können allgemeien daten abgelegt werden- Specified by:
getRootDir
in interfaceDafApplicationEnvironment
- Returns:
- Wurzelverzeichnis
-
getWorkingDirectory
public java.nio.file.Path getWorkingDirectory()
Description copied from interface:DafApplicationEnvironment
Gibt das datenverteilerspezifische Verzeichnis der Testumgebung zurück- Specified by:
getWorkingDirectory
in interfaceDafApplicationEnvironment
- Returns:
- datenverteilerspezifische Verzeichnis der Testumgebung
-
getAppPort
public int getAppPort()
Description copied from interface:DafApplicationEnvironment
Gibt den Port zurück, über den sich Applikationen mit dem Datenverteiler verbinden sollen- Specified by:
getAppPort
in interfaceDafApplicationEnvironment
- Returns:
- Port
-
getFakeParamApp
public FakeParamApp getFakeParamApp()
Description copied from interface:DafApplicationEnvironment
Gibt dieFakeParamApp
der Testumgebung zurück- Specified by:
getFakeParamApp
in interfaceDafApplicationEnvironment
- Returns:
- FakeParamApp
-
getConfigurationAuthority
public java.lang.String getConfigurationAuthority()
Description copied from interface:DafApplicationEnvironment
Gibt den KV zurück- Specified by:
getConfigurationAuthority
in interfaceDafApplicationEnvironment
- Returns:
- KV-Pid
-
setParamAppType
public void setParamAppType(ParamAppType paramAppType)
Description copied from interface:DafApplicationEnvironment
Setzt die Art der Parametrierungs-Applikation- Specified by:
setParamAppType
in interfaceDafApplicationEnvironment
- Parameters:
paramAppType
- Typ der Parametrierung
-
copyResources
public java.io.File copyResources(java.lang.String resourceNamePrefix, java.lang.String destinationDirectoryName)
Kopiert Resourcedateien mit einem angegebenen Präfix in ein neues Verzeichnis. Die Resourcedateien müssen im Classpath auffindbar sein. Die Methode kann sowohl mit wirklichen Dateien, als auch mit Resourcen in JAR-Dateien umgehen. Dabei geht die Methode davon aus, dass alle Resource-Dateien in der gleichen JAR-Datei enthalten sind.- Parameters:
resourceNamePrefix
- Prefix der zu kopierenden Resourcen. Resourcenamen entsprechen Packagenamen, bei denen die Punkte durch Slashes (/) ersetzt wurden. Beispielsweise: 'de/kappich/pat/testumg/util'.destinationDirectoryName
- Name des zu erzeugenden Verzeichnis, das innerhalb eines temporären Verzeichnisses (siehe @{link #getTemporaryDirectory}) angelegt wird.- Returns:
- Erzeugtes Verzeichnis mit den kopierten Resource-Dateien
-
-