コード例 #1
0
        public void GroupOfUnitsShouldExecuteCommand()
        {
            var map        = new Map(5, 5);
            var collection = new UnitCollection()
            {
                new Units.Tractor(map, Orientation.North, new System.Drawing.Point(0, 0)),
                new Stoun(map, new System.Drawing.Point(1, 0)),
                new Wind(map)
            };

            collection.ExecuteCommand(new MoveForwardCommand());
            Assert.AreEqual(1, (collection.ElementAt(0) as Units.Tractor).PositionY);
            Assert.AreEqual(0, (collection.ElementAt(1) as Units.Stoun).PositionY);

            collection.ExecuteCommand(new TurnClockwiseCommand());
            Assert.AreEqual(Orientation.East, (collection.ElementAt(0) as Units.Tractor).Orientation);
            Assert.AreEqual(Orientation.East, (collection.ElementAt(2) as Units.Wind).Orientation);
        }
コード例 #2
0
        public void TestShouldTurn()
        {
            UnitCollection collection = new UnitCollection();
            Map            map        = new Map(5, 5);

            Units.Tractor tractor = new Units.Tractor(map, new Coordinates(2, 2));
            Tank          tank    = new Tank(map, new Coordinates(3, 3));
            DefenceTower  tower   = new DefenceTower(map, new Coordinates(5, 5));

            collection.Add(tractor);
            collection.Add(tank);
            collection.Add(tower);

            collection.ExecuteCommand(new MoveForwardCommand());

            Assert.AreEqual((uint)2, tractor.Position.X);
            Assert.AreEqual((uint)3, tractor.Position.Y);

            Assert.AreEqual((uint)3, tank.Position.X);
            Assert.AreEqual((uint)4, tank.Position.Y);

            Assert.AreEqual((uint)5, tower.Position.X);
            Assert.AreEqual((uint)5, tower.Position.Y);
        }