Files
oop/assignment5/Question2/StartGrading.java

61 lines
1.8 KiB
Java

//Q2
public class StartGrading {
public static void testVehicle() {
//The Vehicle class is abstract. We cannot create objects from this class. Therefore, we cannot test anything
}
public static void testCar() {
// test case for constructors
try {
// exception
Car c1 = new Car(70, 80);
} catch (BadSpeedSetting e) {
System.out.println(e.getMessage().equals("Speed cannot be greater than speed limit!"));
}
try {
// exception
Car c2 = new Car(70, -10);
} catch (BadSpeedSetting e) {
System.out.println(e.getMessage().equals("Speed cannot be negative!"));
}
// test case for accelerate, canFly and getSpeed methods
try {
Car c3 = new Car(100, 80);
// test the canFly method
System.out.println(c3.canFly() == false);
c3.accelerate(10);
System.out.println(c3.getSpeed() == 90);
// test the accelerate with positive amount
c3.accelerate(-20);
System.out.println(c3.getSpeed() == 70);
// test the accelerate with negative amount
c3.accelerate(35);
// exception
} catch (BadSpeedSetting e) {
System.out.println("BUG! THIS MUST NEVER HAPPEN!");
} catch (ExceedSpeedLimit e) {
System.out
.println(e.getMessage().equals("Current speed is 70. Accelerate 35 will exceed the speed limit!"));
} catch (NotEnoughSpeed e) {
System.out.println("BUG! THIS MUST NEVER HAPPEN!");
}
try {
Car c4 = new Car(100, 80);
// exception
c4.accelerate(-90);
} catch (BadSpeedSetting e) {
System.out.println("BUG! THIS MUST NEVER HAPPEN!");
} catch (ExceedSpeedLimit e) {
System.out.println("BUG! THIS MUST NEVER HAPPEN!");
} catch (NotEnoughSpeed e) {
System.out.println(e.getMessage().equals("Current speed is " + 80 + ", not enough speed to decelerate!"));
}
}
public static void main(String[] args) {
Vehicle.testVehicle();
Car.testCar();
}
}