public void ActivatableTest() { //by default part is not activated IActivatable activatable = new Shield(Connector.None, Connector.None, Connector.None, Connector.None); Assert.False(activatable.Activated); activatable.Activate(); Assert.True(activatable.Activated); activatable.Deactivate(); Assert.False(activatable.Activated); //since IActivatable is only an interface, test for each implementing type activatable = new LaserDouble(Connector.None, Connector.None, Connector.None, Connector.None); Assert.False(activatable.Activated); activatable.Activate(); Assert.True(activatable.Activated); activatable.Deactivate(); Assert.False(activatable.Activated); activatable = new EngineDouble(Connector.None, Connector.None, Connector.None, Connector.None); Assert.False(activatable.Activated); activatable.Activate(); Assert.True(activatable.Activated); activatable.Deactivate(); Assert.False(activatable.Activated); }
public void EngineTest() { //an engine can't have a connector facing downwards Engine invalidEngine; Assert.Throws <ArgumentException>(() => invalidEngine = new Engine(Connector.None, Connector.None, Connector.Universal, Connector.None)); //engines also can't be rotated Engine regularEngine = new Engine(Connector.None, Connector.None, Connector.None, Connector.None); regularEngine.Rotate(1); Assert.Equal(Direction.Top, regularEngine.Rotation); //regular engine has 1 enginepower Assert.Equal(1, regularEngine.Enginepower); //while deactivated a double engine has 0 enginepower EngineDouble doubleEngine = new EngineDouble(Connector.None, Connector.None, Connector.None, Connector.None); Assert.False(doubleEngine.Activated); Assert.Equal(0, doubleEngine.Enginepower); //while activated a double engine has 2 enginepower doubleEngine.Activate(); Assert.Equal(2, doubleEngine.Enginepower); }
public void ActivatablesTest() { Ship ship = new Ship(ShipLayout.Small, PlayerColor.Blue); Battery battery = new Battery(Connector.Universal, Connector.Universal, Connector.Universal, Connector.Universal, 5); Shield shield = new Shield(Connector.Universal, Connector.Universal, Connector.Universal, Connector.Universal); EngineDouble engine = new EngineDouble(Connector.Universal, Connector.Universal, Connector.None, Connector.Universal); LaserDouble laser = new LaserDouble(Connector.None, Connector.Universal, Connector.Universal, Connector.Universal); //ship has no activatable parts to begin with Assert.False(ship.HighlightActivatables()); //once again cockpit is at 5,5 ship.AddPart(battery, 5, 4); ship.AddPart(shield, 5, 6); ship.AddPart(engine, 6, 5); ship.AddPart(laser, 4, 5); //ship has activatable parts now Assert.True(ship.HighlightActivatables()); //none are activated to begin with, battery has maximum charges Assert.Equal(5, battery.Charges); Assert.False(shield.Activated); Assert.False(engine.Activated); Assert.False(laser.Activated); //in this state the laser and the engine have 0 fire and enginepower Assert.Equal(0, laser.Firepower); Assert.Equal(0, engine.Enginepower); //activate the shield - one charge should be removed, and shield should be activate ship.ActivatePartAt(5, 6); Assert.Equal(4, battery.Charges); Assert.True(shield.Activated); //activate the engine - apart from the above, the enginepower should be 2 ship.ActivatePartAt(6, 5); Assert.Equal(3, battery.Charges); Assert.True(engine.Activated); Assert.Equal(2, engine.Enginepower); //activate the laser - apart from the above, the enginepower should be 4 ship.ActivatePartAt(4, 5); Assert.Equal(2, battery.Charges); Assert.True(laser.Activated); Assert.Equal(4, laser.Firepower); //deactivate all ship.ResetActivatables(); Assert.False(shield.Activated); Assert.False(engine.Activated); Assert.False(laser.Activated); Assert.Equal(0, engine.Enginepower); Assert.Equal(0, laser.Firepower); }