예제 #1
0
        public void GenerateShipFields_ShipSize_ShouldCreateShipSizeFieldsCount()
        {
            PrepareSequenceForRandomShipsStartPoint();
            _random.Setup(r => r.GetRandomNumber(NUMBER_OF_DIRECTIONS)).Returns(0);
            var shipSize = 4;

            var sut    = new ShipGenerator(_random.Object);
            var result = sut.GenerateShipFields(shipSize);

            Assert.That(result, Has.Exactly(shipSize).Items);
        }
예제 #2
0
        public void GenerateShipFields_ForRowDirection_ShouldAllFieldsHaveSameRowLetter(int rowNumber, string expectedLetter)
        {
            _random.SetupSequence(r => r.GetRandomNumber(BOARD_SIZE))
            .Returns(COMMON_COLUMN_NUMBER)
            .Returns(rowNumber);
            _random.Setup(r => r.GetRandomNumber(NUMBER_OF_DIRECTIONS)).Returns((int)ShipDirection.Row);
            var shipSize = 3;

            var sut    = new ShipGenerator(_random.Object);
            var result = sut.GenerateShipFields(shipSize);

            result.ForEach(f => Assert.That(f.Substring(0, 1), Is.EqualTo(expectedLetter)));
        }
예제 #3
0
        public void GenerateShipFields_ForColumnDirection_ShouldAllFieldsHaveSameColumnNumber(int columnNumber, string expectedColumnNumberResult)
        {
            _random.SetupSequence(r => r.GetRandomNumber(BOARD_SIZE))
            .Returns(columnNumber)
            .Returns(COMMON_ROW_NUMBER);
            _random.Setup(r => r.GetRandomNumber(NUMBER_OF_DIRECTIONS)).Returns((int)ShipDirection.Column);
            var shipSize = 3;

            var sut    = new ShipGenerator(_random.Object);
            var result = sut.GenerateShipFields(shipSize);

            result.ForEach(f => Assert.That(f.Substring(1), Is.EqualTo(expectedColumnNumberResult)));
        }
예제 #4
0
        public void GenerateShipFields_ShouldReturnColumnNumberStaredFromOne(int columnNumber, string expectedColumnNumberResult)
        {
            _random.SetupSequence(r => r.GetRandomNumber(BOARD_SIZE))
            .Returns(columnNumber)
            .Returns(COMMON_ROW_NUMBER);
            _random.Setup(r => r.GetRandomNumber(NUMBER_OF_DIRECTIONS)).Returns(0);
            var shipSize = 1;

            var sut    = new ShipGenerator(_random.Object);
            var result = sut.GenerateShipFields(shipSize);

            Assert.That(result.First().Substring(1), Is.EqualTo(expectedColumnNumberResult));
        }
예제 #5
0
        public void GenerateShipFields_ShouldReturnProperRowLetters(int rowNumber, string expectedLetter)
        {
            _random.SetupSequence(r => r.GetRandomNumber(BOARD_SIZE))
            .Returns(COMMON_COLUMN_NUMBER)
            .Returns(rowNumber);
            _random.Setup(r => r.GetRandomNumber(NUMBER_OF_DIRECTIONS)).Returns(0);
            var shipSize = 1;

            var sut    = new ShipGenerator(_random.Object);
            var result = sut.GenerateShipFields(shipSize);

            Assert.That(result.First().Substring(0, 1), Is.EqualTo(expectedLetter));
        }