Ejemplo n.º 1
0
        public void BlueCityAt4x1_ProducesABlueSettler_AfterFiveRounds(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();
            game.ChangeCityProductionProjectAt(BlueCityTile, Settler);

            // :::: ACT ::::
            SkipRounds(game, 5);

            // :::: ASSERT ::::
            game.UnitAt(BlueCityTile).Owner.Should().Be(Blue);
            game.UnitAt(BlueCityTile).Type.Should().Be(Settler);
            game.UnitAt(BlueCityTile).RemainingMovement.Should().Be(1);
        }
Ejemplo n.º 2
0
        public void RedSettlerAt4x3_DoesNotMoveMoreThanOneTileDuringARound(IGame game)
        {
            // :::: ARRANGE ::::
            game.MoveUnit(RedSettlerTile, To(4, 2));

            // :::: ACT ::::
            game.MoveUnit(From(4, 2), RedSettlerTile);

            // :::: ASSERT ::::
            game.UnitAt(RedSettlerTile).Should().BeNull();
            game.UnitAt(Location(4, 2)).Owner.Should().Be(Red);
            game.UnitAt(Location(4, 2)).Type.Should().Be(Settler);
            game.UnitAt(Location(4, 2)).RemainingMovement.Should().Be(0);
        }
Ejemplo n.º 3
0
        public void RedCityAt1x1_ProducesARedArcher_AfterTwoRounds(IGame game)
        {
            // :::: ARRANGE ::::
            game.ChangeCityProductionProjectAt(RedCityTile, Archer);

            // :::: ACT ::::
            SkipRounds(game, 2);

            // :::: ASSERT ::::
            game.UnitAt(RedCityTile).Owner.Should().Be(Red);
            game.UnitAt(RedCityTile).Type.Should().Be(Archer);
            game.UnitAt(RedCityTile).RemainingMovement.Should().Be(1);
        }
Ejemplo n.º 4
0
        public void RedArcher_DoesNotMoveOntoTheRedSettlerAt4x3(IGame game)
        {
            // :::: ARRANGE ::::
            game.MoveUnit(RedArcherTile, To(3, 1));
            SkipRounds(game, 1);

            game.MoveUnit(From(3, 1), To(4, 2));
            SkipRounds(game, 1);

            // :::: ACT ::::
            game.MoveUnit(From(4, 2), RedSettlerTile);

            // :::: ASSERT ::::
            game.UnitAt(Location(4, 2)).Owner.Should().Be(Red);
            game.UnitAt(Location(4, 2)).Type.Should().Be(Archer);
            game.UnitAt(Location(4, 2)).RemainingMovement.Should().Be(1);

            game.UnitAt(RedSettlerTile).Owner.Should().Be(Red);
            game.UnitAt(RedSettlerTile).Type.Should().Be(Settler);
            game.UnitAt(RedSettlerTile).RemainingMovement.Should().Be(1);
        }
Ejemplo n.º 5
0
        public void BlueLegionAt3x2_DoesNotMoveMoreThanOneTileDuringARound(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();
            game.MoveUnit(BlueLegionTile, To(3, 1));

            // :::: ACT ::::
            game.MoveUnit(From(3, 1), BlueLegionTile);

            // :::: ASSERT ::::
            game.UnitAt(BlueLegionTile).Should().BeNull();
            game.UnitAt(Location(3, 1)).Owner.Should().Be(Blue);
            game.UnitAt(Location(3, 1)).Type.Should().Be(Legion);
            game.UnitAt(Location(3, 1)).RemainingMovement.Should().Be(0);
        }
Ejemplo n.º 6
0
        public void RedArcherAt2x0_DoesNotMoveToOceansAt1x0(IGame game)
        {
            // :::: ACT ::::
            game.MoveUnit(RedArcherTile, OceansTile);

            // :::: ASSERT ::::
            game.UnitAt(RedArcherTile).Owner.Should().Be(Red);
            game.UnitAt(RedArcherTile).Type.Should().Be(Archer);
            game.UnitAt(RedArcherTile).RemainingMovement.Should().Be(1);
            game.UnitAt(OceansTile).Should().BeNull();
        }
Ejemplo n.º 7
0
        public void BlueLegionAt3x2_DoesNotMoveToMountainsAt2x2(IGame game)
        {
            // :::: ACT ::::
            game.MoveUnit(BlueLegionTile, MountainsTile);

            // :::: ASSERT ::::
            game.UnitAt(BlueLegionTile).Owner.Should().Be(Blue);
            game.UnitAt(BlueLegionTile).Type.Should().Be(Legion);
            game.UnitAt(BlueLegionTile).RemainingMovement.Should().Be(1);
            game.UnitAt(MountainsTile).Should().BeNull();
        }
Ejemplo n.º 8
0
        public void RedArcher_DefeatsTheBlueLegionAt3x2(IGame game)
        {
            // :::: ARRANGE ::::
            game.MoveUnit(RedArcherTile, To(3, 1));
            SkipRounds(game, 1);

            // :::: ACT ::::
            game.MoveUnit(From(3, 1), BlueLegionTile);

            // :::: ASSERT ::::
            game.UnitAt(Location(3, 1)).Should().BeNull();
            game.UnitAt(BlueLegionTile).Owner.Should().Be(Red);
            game.UnitAt(BlueLegionTile).Type.Should().Be(Archer);
            game.UnitAt(BlueLegionTile).RemainingMovement.Should().Be(0);
        }
Ejemplo n.º 9
0
        public void BlueLegion_DefeatsTheRedSettlerAt4x3(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();

            // :::: ACT ::::
            game.MoveUnit(BlueLegionTile, RedSettlerTile);

            // :::: ASSERT ::::
            game.UnitAt(BlueLegionTile).Should().BeNull();
            game.UnitAt(RedSettlerTile).Owner.Should().Be(Blue);
            game.UnitAt(RedSettlerTile).Type.Should().Be(Legion);
            game.UnitAt(RedSettlerTile).RemainingMovement.Should().Be(0);
        }
Ejemplo n.º 10
0
        public void RedArcherAt2x0_MovesTo2x1_WhenRedIsInTurn(IGame game)
        {
            // :::: ACT ::::
            game.MoveUnit(RedArcherTile, To(2, 1));

            // :::: ASSERT ::::
            game.UnitAt(RedArcherTile).Should().BeNull();
            game.UnitAt(Location(2, 1)).Owner.Should().Be(Red);
            game.UnitAt(Location(2, 1)).Type.Should().Be(Archer);
            game.UnitAt(Location(2, 1)).RemainingMovement.Should().Be(0);
        }
Ejemplo n.º 11
0
        public void RedArcherAt2x0_DoesNotMoveTo2x1_WhenBlueIsInTurn(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();

            // :::: ACT ::::
            game.MoveUnit(RedArcherTile, To(2, 1));

            // :::: ASSERT ::::
            game.UnitAt(RedArcherTile).Owner.Should().Be(Red);
            game.UnitAt(RedArcherTile).Type.Should().Be(Archer);
            game.UnitAt(RedArcherTile).RemainingMovement.Should().Be(1);
            game.UnitAt(Location(2, 1)).Should().BeNull();
        }
Ejemplo n.º 12
0
        public void RedSettlerAt4x3_DoesNotBuildACity_WhenBlueIsInTurn(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();

            // :::: ACT ::::
            game.PerformUnitActionAt(RedSettlerTile);

            // :::: ASSERT ::::
            game.UnitAt(RedSettlerTile).Should().NotBeNull();
            game.CityAt(RedSettlerTile).Should().BeNull();
        }
Ejemplo n.º 13
0
        public void RedSettlerAt4x3_BuildsARedCity_WhenRedIsInTurn(IGame game)
        {
            // :::: ACT ::::
            game.PerformUnitActionAt(RedSettlerTile);

            // :::: ASSERT ::::
            game.UnitAt(RedSettlerTile).Should().BeNull();
            game.CityAt(RedSettlerTile).Should().NotBeNull();
        }
Ejemplo n.º 14
0
        public void BlueChariotAt4x1_DoesNotFortify_WhenRedIsInTurn(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();
            game.ChangeCityProductionProjectAt(BlueCityTile, Chariot);
            SkipRounds(game, 4);
            game.EndTurn();

            // :::: ACT ::::
            game.PerformUnitActionAt(BlueCityTile);

            // :::: ASSERT ::::
            game.UnitAt(BlueCityTile).RemainingMovement.Should().Be(1);
        }
Ejemplo n.º 15
0
        public void RedArcherAt2x0_DoesNotFortify_WhenBlueIsInTurn(IGame game)
        {
            // :::: ARRANGE ::::
            game.EndTurn();

            // :::: ACT ::::
            game.PerformUnitActionAt(RedArcherTile);

            // :::: ASSERT ::::
            game.UnitAt(RedArcherTile).RemainingMovement.Should().Be(1);
        }
Ejemplo n.º 16
0
        public void RedArcherAt2x0_Fortifies_WhenRedIsInTurn(IGame game)
        {
            // :::: ACT ::::
            game.PerformUnitActionAt(RedArcherTile);

            // :::: ASSERT ::::
            game.UnitAt(RedArcherTile).RemainingMovement.Should().Be(0);
        }