예제 #1
0
        public void WhenPositionIsOccupied_ShouldReturnOccupant()
        {
            var ship = new DummyShip(1);
            var occupiedCoordinates = new Coordinates(0, 0);

            var subject = CreateBoard(CreatePosition(occupiedCoordinates, occupant: ship));

            subject.Check(occupiedCoordinates).Ship.Should().Be(ship);
        }
예제 #2
0
        public void ShouldPutPositionsOnBoard()
        {
            var coordinates = new Coordinates(5, 5);
            var ship        = new DummyShip(1);

            A.CallTo(() => _shipPositionerDouble.CreatePositions(A <List <Ship> > ._)).Returns(
                new List <Position>
            {
                new Position(coordinates, ship)
            });

            _subject.Initialize().Check(coordinates).Ship.Should().Be(ship);
        }
예제 #3
0
        public void WhenAllShipsAreSunk_ShouldBeConquered()
        {
            var firstShot        = new Coordinates(0, 0);
            var secondShot       = new Coordinates(1, 1);
            var thirdShot        = new Coordinates(1, 2);
            var doubleMastedShip = new DummyShip(2);

            var subject = new Board(
                new List <Position>
            {
                new Position(new Coordinates(0, 1), null),
                new Position(firstShot, new DummyShip(1)),
                new Position(secondShot, doubleMastedShip),
                new Position(thirdShot, doubleMastedShip)
            });

            subject.Check(firstShot);
            subject.Check(secondShot);
            subject.Check(thirdShot);

            subject.IsConquered.Should().BeTrue();
        }