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); }
public void CreateShip_WhenOneDimensionShipIsNull_ThrowsArgumentNullException() { // Arrange var sutShipFactory = new ShipFactory(); OneDimensionShip oneDimensionShip = null; // Act Action action = () => sutShipFactory.CreateShip(oneDimensionShip); // Assert action.Should().ThrowExactly <ArgumentNullException>(); }
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); }
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); }