Exemplo n.º 1
0
        public void CreateShip_WhenOneDimensionShipIsValid_ReturnsCorrectShip(OneDimensionShip oneDimensionShip, Ship expectedShip)
        {
            // Arrange
            var sutShipFactory = new ShipFactory();

            // Act
            var result = sutShipFactory.CreateShip(oneDimensionShip);

            // Assert
            result.Should().Be(expectedShip);
        }
Exemplo n.º 2
0
        public void CreateShip_WhenOneDimensionShipIsNull_ThrowsArgumentNullException()
        {
            // Arrange
            var sutShipFactory = new ShipFactory();
            OneDimensionShip oneDimensionShip = null;

            // Act
            Action action = () => sutShipFactory.CreateShip(oneDimensionShip);

            // Assert
            action.Should().ThrowExactly <ArgumentNullException>();
        }
Exemplo n.º 3
0
        public void CreateShip_WhenOneDimensionShipLengthHasANegativeComponent_ThrowsArgumentException(Position position)
        {
            // Arrange
            var sutShipFactory   = new ShipFactory();
            var oneDimensionShip = new OneDimensionShip()
            {
                Length = 1, StartPosition = position
            };

            // Act
            Action action = () => sutShipFactory.CreateShip(oneDimensionShip);

            // Assert
            var expectedErrorMessage = $"{nameof(OneDimensionShip.StartPosition)} of {nameof(OneDimensionShip)} argument cannot have a negative coordinate.";

            action.Should().ThrowExactly <ArgumentException>()
            .And.Message.Should().Be(expectedErrorMessage);
        }
Exemplo n.º 4
0
        public void CreateShip_WhenOneDimensionShipLengthIsZeroOrNegative_ThrowsArgumentException(int shipLength)
        {
            // Arrange
            var sutShipFactory   = new ShipFactory();
            var oneDimensionShip = new OneDimensionShip()
            {
                Length = shipLength
            };

            // Act
            Action action = () => sutShipFactory.CreateShip(oneDimensionShip);

            // Assert
            var expectedErrorMessage = $"The {nameof(OneDimensionShip.Length)} of {nameof(OneDimensionShip)} argument is zero or negative.";

            action.Should().ThrowExactly <ArgumentException>()
            .And.Message.Should().Be(expectedErrorMessage);
        }