class Testprogram{
private static int antallTester = 0;
private static int antallPasserte = 0;
private static int antallFeil = 0;
public static void main(String[] args) {
testPerson();
testSjaafor();
testMotorsykkel();
testBil();
testParkeringshus();
System.out.println("\n"+ antallTester + " tester ferdig");
System.out.println(antallPasserte + " passerte, " + antallFeil + " feil");
}
public static void testPerson(){
System.out.println("Tester person:");
Person person = new Person("Tina", 32);
sjekk(32, person.hentAlder(), "hentAlder skal hente 32");
sjekk("Tina", person.hentNavn(), "hentNavn skal hente Tina");
}
public static void testSjaafor(){
System.out.println("Tester sjaafor:");
try {
Sjaafor sjaafor = new Sjaafor("Test", 1);
sjekkFeilet("Man skal ikke kunne lage en sjaafor som er 1 aar");
} catch (Exception e) {
sjekkPasserte();
}
try {
Sjaafor sjaafor = new Sjaafor("Test", 18);
sjekkPasserte();
} catch (Exception e) {
sjekkFeilet("Man skal ikke kunne lage en sjaafor som er 18 aar gammel");
}
try {
Sjaafor sjaafor = new Sjaafor("Test", 81);
sjekkPasserte();
} catch (Exception e) {
sjekkFeilet("Man skal ikke kunne lage en sjaafor som er 81 aar gammel");
}
}
public static void testMotorsykkel(){
System.out.println("Tester motrosykkel:");
String regNr = "BS48532";
Motorsykkel motrosykkel = new Motorsykkel(regNr, new Sjaafor("Tina", 32));
Sjaafor sjaafor = motrosykkel.hentSjaafor();
sjekk(regNr, motrosykkel.hentRegNr(), "Forventer at regNr skal vaere " + regNr);
sjekk("Tina", sjaafor.hentNavn(), "hentNavn skal hente Tina");
sjekk(32, sjaafor.hentAlder(), "hentAlder skal hente 32");
}
public static void testBil(){
System.out.println("Tester Bil:");
String regNr = "BS48532";
Bil bil = new Bil(regNr, new Sjaafor("Tina", 32), 5);
Person lise = new Person("Lise", 32);
Person[] riktig = new Person[4];
sjekk(true, bil.fyllBil(lise), "Forventer at det skal vaere plass");
sjekk(lise, bil.hentPassasjerer()[0], "Lise skal vaere plasser paa den forste indeksen i lista" );
Person tom = new Person("Tom",3);
Person[] arg = {new Person("Kari", 34), tom, new Person("Nemis", 56)};
sjekk(true, bil.fyllBil(arg), "Forventer at det skal vaere plass");
sjekk(tom, bil.hentPassasjerer()[2], "Tom skal vaere plasser paa den forste indeksen i lista" );
Person petter = new Person("Petter", 56);
Person[] arg2 = {petter, new Person("Nora", 12)};
sjekk(false, bil.fyllBil(arg2), "Forventer at det ikke skal vaere plass");
sjekk(false, bil.fyllBil(petter), "Forventer at det ikke skal vaere plass");
}
public static void testParkeringshus(){
String regNr = "BS48532";
Bil bil = new Bil(regNr, new Sjaafor("Tina", 32), 5);
Motorsykkel motrosykkel = new Motorsykkel(regNr, new Sjaafor("Laika", 32));
Parkeringshus phus = new Parkeringshus(5);
sjekk(false, phus.settKjoretoy(5, bil), "5 skal vaere uten for indeksen til plasser i Parkeringshus");
sjekk(false, phus.settKjoretoy(86, bil), "86 skal vaere uten for indeksen til plasser i Parkeringshus");
sjekk(true, phus.settKjoretoy(1, bil), "Bilen skal bli parkert");
sjekk(false, phus.settKjoretoy(1, motrosykkel), "Plassen skal allerede vaere tatt");
sjekk(true, phus.settKjoretoy(0, motrosykkel), "Motorsykkelen skal vaere parkert");
sjekkNull(phus.hentKjoretoy(5), "Skal vaere utenfor indeks");
sjekkNull(phus.hentKjoretoy(3), "ingen kjoretoy skal sta der");
sjekk(bil, phus.hentKjoretoy(1), "Bilen skal hentes");
sjekk(motrosykkel, phus.hentKjoretoy(0), "Motorsykkelen skal hentes");
}
private static void sjekkNull(Object faktisk, String testmelding){
if(faktisk == null){
sjekkPasserte();
}else{
sjekkFeilet(testmelding);
System.out.println(" > Forventet verdi: null");
System.out.println(" > Faktisk verdi: " + faktisk);
}
}
private static void sjekk(Object forventet, Object faktisk, String testmelding) {
if (forventet.equals(faktisk)) {
sjekkPasserte();
} else {
sjekkFeilet(testmelding);
System.out.println(" > Forventet verdi: " + forventet);
System.out.println(" > Faktisk verdi: " + faktisk);
}
}
private static void sjekkPasserte() {
antallTester++;
antallPasserte++;
System.out.println("- Test " + antallTester + ": OK");
}
private static void sjekkFeilet(String testmelding) {
antallTester++;
antallFeil++;
System.out.println("- Test " + antallTester + " feilet: " + testmelding);
}
}