Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }