public void ShouldReturnShipWithAllPositions()
        {
            var ship = new DummyShip(4);

            _subject.GeneratePositionsForShip(ship).Select(position => position.Occupant).Distinct().Single()
            .Should().Be(ship);
        }
        public void ShouldReturnAsManyPositionsAsMasts()
        {
            var ship = new DummyShip(3);

            StubRandomNumberGeneration(6);

            _subject.GeneratePositionsForShip(ship).Should().HaveCount(ship.NumberOfMasts);
        }
        public void WhenPlacingShipVertically_ShouldGenerateVerticalInitialPositionBetweenZeroAndBoardSizeMinusOneMinusShipSize()
        {
            var ship = new DummyShip(4);

            A.CallTo(() => _randomGeneratorDouble.GenerateRandomBool()).Returns(false);

            _subject.GeneratePositionsForShip(ship);

            A.CallTo(() => _randomGeneratorDouble.GenerateRandomNumber(0, Board.Size - 1 - ship.NumberOfMasts))
            .MustHaveHappenedOnceExactly();
        }
Ejemplo n.º 4
0
        public void WhenAllMastsHit_ShouldBeSunk()
        {
            var subject = new DummyShip(4);

            subject.ReportHit();
            subject.ReportHit();
            subject.ReportHit();
            subject.ReportHit();

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