Added ProjektTester.java
This commit is contained in:
parent
0466ca60f6
commit
29e1b95c19
78
src/de/dhbw/contactdb/ProjektTester.java
Normal file
78
src/de/dhbw/contactdb/ProjektTester.java
Normal file
@ -0,0 +1,78 @@
|
||||
package de.dhbw.contactdb;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
public class ProjektTester {
|
||||
// Konfiguration eurer Hauptklasse. Bitte vollqualifizierten Klassennamen plus Paket angeben.
|
||||
// Z.b. die Klasse MeinProjekt im Paket dhbw.java, muss lauten: 'dhbw.java.MeinProjekt'
|
||||
private static final String MAIN_CLASS = "de.dhbw.contactdb.Main";
|
||||
|
||||
public static void main(String[] args) {
|
||||
// project.model.Tests are passing
|
||||
boolean passed = true;
|
||||
|
||||
// Kontaktpersonen fuer Mia
|
||||
passed = passedTestNetzwerk("--kontaktpersonen=1", "Aaron, Amelie, Ben, Emil, Emilia, Emily, Felix, Hannah, Hannes, Julius, Leonard, Levi, Louis, Malia, Marlene, Ole, Rosalie, Sophia, Victoria");
|
||||
// Kontaktpersonen fuer Emilia
|
||||
passed &= passedTestNetzwerk("--kontaktpersonen=2", "Amelie, Carla, Carlotta, Charlotte, Emma, Eva, Hannah, Hannes, Jonas, Joshua, Malia, Maria, Mattis, Melina, Mia, Noah, Ole, Sophia, Tom");
|
||||
// Kontaktpersonen fuer Ole
|
||||
passed &= passedTestNetzwerk("--kontaktpersonen=158", "Ben, Carla, Emilia, Emily, Joshua, Malia, Maria, Mia, Sophia");
|
||||
|
||||
// Besucher fuer Bäckerei am "2021-05-15T14:16:00"
|
||||
passed &= passedTestNetzwerk("--besucher=1,\"2021-05-15T14:16:00\"", "Adam, Amelie, Carla, Carlotta, Charlotte, Elli, Emil, Emilia, Emily, Emma, Eva, Fiona, Hannah, Hannes, Jonah, Jonas, Joshua, Konstantin, Lian, Lisa, Luisa, Malia, Mara, Maria, Mattis, Max, Melina, Mia, Mohammed, Noah, Ole, Sophia, Tim, Tom, Toni, Victoria");
|
||||
// Besucher fuer Supermarkt am "2021-05-15T14:16:00"
|
||||
passed &= passedTestNetzwerk("--besucher=2,\"2021-05-15T14:16:00\"", "Alma, Anni, Arthur, Jannik, Mats, Mika, Paula, Pia");
|
||||
// Besucher fuer Zoo am "2021-05-15T11:00:00"
|
||||
passed &= passedTestNetzwerk("--besucher=3,\"2021-05-15T11:00:00\"", "Anna, Charlotte, Emilia, Leonie, Marie, Mia");
|
||||
|
||||
if (passed) {
|
||||
System.out.println("Alle Tests bestanden :-)");
|
||||
} else {
|
||||
System.out.println("Leider nicht alle Tests bestanden :-(");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ueberprueft ob Aufruf den erwarteten Ausgabestring beinhaltet.
|
||||
*
|
||||
* @param arg Programmargument
|
||||
* @param resultString String, welcher als Ausgabe erwartet wird
|
||||
* @return
|
||||
*/
|
||||
private static boolean passedTestNetzwerk(String arg, String resultString) {
|
||||
// Der System.out Stream muss umgebogen werden, damit dieser spaeter ueberprueft werden kann.
|
||||
PrintStream normalerOutput = System.out;
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
System.setOut(new PrintStream(baos));
|
||||
String[] args = {arg};
|
||||
try {
|
||||
// MainClass mittels Reflection bekommen und main Methode aufrufen
|
||||
Class<?> mainClass = Class.forName(MAIN_CLASS);
|
||||
Method mainMethod = mainClass.getDeclaredMethod("main", String[].class);
|
||||
mainMethod.invoke(null, (Object) args);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.err.println("Main-Klasse konnte nicht geladen werden, bitte Konfiguration pruefen.");
|
||||
System.exit(1);
|
||||
} finally {
|
||||
// System.out wieder zuruecksetzen
|
||||
System.setOut(normalerOutput);
|
||||
}
|
||||
|
||||
// Ergebnisse ueberpruefen.
|
||||
String output = baos.toString();
|
||||
String[] lines = output.split(System.lineSeparator());
|
||||
// Pryefe ob eine Zeile in der Ausgabe dem Format entspricht
|
||||
for (String line : lines) {
|
||||
// keine Leerzeichen beachten
|
||||
if (line.replace(" ", "").equals(resultString.replace(" ", ""))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
System.err.println("Feher bei: '" + arg + "'. Erwartetes Ergebnis: '" + resultString + "', erhaltenes Ergebnis: '" + output.replace(System.lineSeparator(), "") + "'");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user