package blackout; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; import unsw.blackout.BlackoutController; import unsw.response.models.EntityInfoResponse; import unsw.utils.Angle; import java.util.Arrays; import static blackout.TestHelpers.assertListAreEqualIgnoringOrder; @TestInstance(value = Lifecycle.PER_CLASS) public class Task1Tests { @Test public void testCreateDeviceList() { BlackoutController controller = new BlackoutController(); controller.createDevice("DeviceA", "LaptopDevice", Angle.fromDegrees(310)); controller.createDevice("DeviceB", "LaptopDevice", Angle.fromDegrees(310)); assertListAreEqualIgnoringOrder(Arrays.asList("DeviceA", "DeviceB"), controller.listDeviceIds()); } @Test public void testCreateSatelliteList() { BlackoutController controller = new BlackoutController(); controller.createSatellite("S1", "StandardSatellite", 0, Angle.fromDegrees(310)); controller.createSatellite("S2", "StandardSatellite", 0, Angle.fromDegrees(310)); assertListAreEqualIgnoringOrder(Arrays.asList("S1", "S2"), controller.listSatelliteIds()); } @Test public void testRemoveDeviceList() { BlackoutController controller = new BlackoutController(); controller.createDevice("DeviceA", "LaptopDevice", Angle.fromDegrees(310)); controller.createDevice("DeviceB", "LaptopDevice", Angle.fromDegrees(310)); assertListAreEqualIgnoringOrder(Arrays.asList("DeviceA", "DeviceB"), controller.listDeviceIds()); controller.removeDevice("DeviceB"); assertListAreEqualIgnoringOrder(Arrays.asList("DeviceA"), controller.listDeviceIds()); } @Test public void testRemoveSatelliteList() { BlackoutController controller = new BlackoutController(); controller.createSatellite("S1", "StandardSatellite", 0, Angle.fromDegrees(310)); controller.createSatellite("S2", "StandardSatellite", 0, Angle.fromDegrees(310)); assertListAreEqualIgnoringOrder(Arrays.asList("S1", "S2"), controller.listSatelliteIds()); controller.removeSatellite("S2"); assertListAreEqualIgnoringOrder(Arrays.asList("S1"), controller.listSatelliteIds()); } @Test public void testAddFileToDeviceInfoResponse() { BlackoutController controller = new BlackoutController(); controller.createDevice("DeviceA", "LaptopDevice", Angle.fromDegrees(310)); assert(controller.getInfo("DeviceA").getFiles().size() == 0); controller.addFileToDevice("DeviceA", "filename", "contents"); assert(controller.getInfo("DeviceA").getFiles().size() == 1); } @Test public void testInfoResponse() { BlackoutController controller = new BlackoutController(); controller.createSatellite("Satellite1", "StandardSatellite", 314159, Angle.fromDegrees(310)); EntityInfoResponse info = controller.getInfo("Satellite1"); assert(info.getDeviceId().equals("Satellite1")); assert(info.getPosition().equals(Angle.fromDegrees(310))); assert(info.getHeight() == 314159); assert(info.getType().equals("StandardSatellite")); assert(info.getFiles().size() == 0); } }