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 Datenverteilerverbindung
    java.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 sollen
    java.lang.String getConfigurationAuthority()
    Gibt den KV zurück
    java.lang.String getDavHostname()  
    int getDavTcpPort()  
    FakeParamApp getFakeParamApp()
    Gibt die FakeParamApp der Testumgebung zurück
    java.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ück
    void setAdditionalTransmitterArgs​(java.lang.String... additionalTransmitterArgs)  
    void setConfigurationDebugLevel​(java.lang.String configurationDebugLevel)  
    void setParamAppType​(ParamAppType paramAppType)
    Setzt die Art der Parametrierungs-Applikation
    void 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üfung
    java.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)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 Details

    • 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 Wert null 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 Wert null 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 - Falls true, 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 interface DafApplicationEnvironment
      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 interface DafApplicationEnvironment
      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 interface DafApplicationEnvironment
      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 interface DafApplicationEnvironment
      Returns:
      Port
    • getFakeParamApp

      public FakeParamApp getFakeParamApp()
      Description copied from interface: DafApplicationEnvironment
      Gibt die FakeParamApp der Testumgebung zurück
      Specified by:
      getFakeParamApp in interface DafApplicationEnvironment
      Returns:
      FakeParamApp
    • getConfigurationAuthority

      public java.lang.String getConfigurationAuthority()
      Description copied from interface: DafApplicationEnvironment
      Gibt den KV zurück
      Specified by:
      getConfigurationAuthority in interface DafApplicationEnvironment
      Returns:
      KV-Pid
    • setParamAppType

      public void setParamAppType​(ParamAppType paramAppType)
      Description copied from interface: DafApplicationEnvironment
      Setzt die Art der Parametrierungs-Applikation
      Specified by:
      setParamAppType in interface DafApplicationEnvironment
      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