public void GenerateShipOfSize_Input1_ReturnsOneDeckShip() { var randomShipGenerator = new RandomShipGenerator(null); var result = randomShipGenerator.GenerateShipOfSize(1); Assert.That(result, Is.TypeOf <OneDeckShip>()); }
public void GenerateShipOfSize_Input2_ReturnsTwoDeckShipWithRotationGeneratedByRandom( ShipRotation shipRotationGeneratedByRandom) { var randomIndexGeneratorStub = new Mock <IRandomGenerator>(); var possibleRotationsForTwoDeckShip = new[] { ShipRotation._0, ShipRotation._90 }; randomIndexGeneratorStub.Setup(r => r.GetRandomElementFromArrayAsInt(possibleRotationsForTwoDeckShip)) .Returns((int)shipRotationGeneratedByRandom); var randomShipGenerator = new RandomShipGenerator(randomIndexGeneratorStub.Object); var result = randomShipGenerator.GenerateShipOfSize(2); Assert.Multiple(() => { Assert.That(result, Is.TypeOf <TwoDeckShip>()); Assert.That(result.Rotation, Is.EqualTo(shipRotationGeneratedByRandom)); }); }
GenerateShipOfSize_Input4RandomReturnsSquareShipShape_ReturnsFourDeckShipWith0RotationAndSquareShipShape() { var randomIndexGeneratorStub = new Mock <IRandomGenerator>(); var fourDeckShipShapes = Enum.GetValues(typeof(ShipShape)); var squareFourDeckShipRotations = new[] { ShipRotation._0 }; randomIndexGeneratorStub.Setup(r => r.GetRandomElementFromArrayAsInt(fourDeckShipShapes)) .Returns((int)ShipShape.Square); randomIndexGeneratorStub.Setup(r => r.GetRandomElementFromArrayAsInt(squareFourDeckShipRotations)) .Returns((int)ShipRotation._0); var randomShipGenerator = new RandomShipGenerator(randomIndexGeneratorStub.Object); var result = randomShipGenerator.GenerateShipOfSize(4); Assert.Multiple(() => { Assert.That(result, Is.TypeOf <FourDeckShip>()); Assert.That(result.Shape, Is.EqualTo(ShipShape.Square)); Assert.That(result.Rotation, Is.EqualTo(ShipRotation._0)); }); }
GenerateShipOfSize_Input4RandomReturnsLineOrZigzagShipShape_ReturnsFourDeckShipWithShapeAndRotationGeneratedByRandom( ShipShape shipShapeGeneratedByRandom, ShipRotation shipRotationGeneratedByRandom) { var randomIndexGeneratorStub = new Mock <IRandomGenerator>(); var fourDeckShipShapes = Enum.GetValues(typeof(ShipShape)); var lineOrZigzagShapeFourDeckShipRotations = new[] { ShipRotation._0, ShipRotation._90 }; randomIndexGeneratorStub.Setup(r => r.GetRandomElementFromArrayAsInt(fourDeckShipShapes)) .Returns((int)shipShapeGeneratedByRandom); randomIndexGeneratorStub.Setup(r => r.GetRandomElementFromArrayAsInt(lineOrZigzagShapeFourDeckShipRotations)) .Returns((int)shipRotationGeneratedByRandom); var randomShipGenerator = new RandomShipGenerator(randomIndexGeneratorStub.Object); var result = randomShipGenerator.GenerateShipOfSize(4); Assert.Multiple(() => { Assert.That(result, Is.TypeOf <FourDeckShip>()); Assert.That(result.Shape, Is.EqualTo(shipShapeGeneratedByRandom)); Assert.That(result.Rotation, Is.EqualTo(shipRotationGeneratedByRandom)); }); }