public void TestShotFired() { var coordinateReader = new MockCoordinatesReader(); var console = new MockConsoleWrapper(); var ship = new Ship("player1", 3, coordinateReader, console); ship.CoordinatesList.Add(new Coordinates('A', 3)); ship.CoordinatesList.Add(new Coordinates('A', 2)); ship.CoordinatesList.Add(new Coordinates('A', 1)); ship.CoordinatesList.Count.ShouldBe(3); ship.ShotFired(new Coordinates('A', 3)).ShouldBe(true); ship.ShotFired(new Coordinates('A', 4)).ShouldBe(false); ship.ShotFired(new Coordinates('B', 3)).ShouldBe(false); }
public void TestAddMissedShot() { var coordinateReader = new MockCoordinatesReader(); var console = new MockConsoleWrapper(); var ship = new Ship("player1", 3, coordinateReader, console); ship.CoordinatesList.Add(new Coordinates('A', 3)); ship.CoordinatesList.Add(new Coordinates('A', 2)); ship.CoordinatesList.Add(new Coordinates('A', 1)); ship.CoordinatesList.Count.ShouldBe(3); ship.AddMissedShot(new Coordinates('B', 3)).ShouldBe(true); ship.AddMissedShot(new Coordinates('B', 2)).ShouldBe(true); ship.MissedShotsCount().ShouldBe(2); }
public void TestInitilizeVerticalShip() { var coordinateReader = new MockCoordinatesReader(); var console = new MockConsoleWrapper(); var ship = new Ship("player1", 3, coordinateReader, console); coordinateReader.MockReadShipCoordinates += (o, p) => { return(new Coordinates('A', 3)); }; console.MockReadLine += () => { return("1"); }; ship.InitilizeShip().ShouldBeTrue(); ship.CoordinatesList.Count.ShouldBe(3); ship.Orientation.ShouldBe(Enums.Orientation.Vertical); ship.CoordinatesList.Any(x => x.XCoordinate == 'A' && x.YCoordinate == 3).ShouldBe(true); ship.CoordinatesList.Any(x => x.XCoordinate == 'A' && x.YCoordinate == 2).ShouldBe(true); ship.CoordinatesList.Any(x => x.XCoordinate == 'A' && x.YCoordinate == 1).ShouldBe(true); }
public void TestInitilizeHorizontalShip() { var coordinateReader = new MockCoordinatesReader(); var console = new MockConsoleWrapper(); var ship = new Ship("player1", 3, coordinateReader, console); coordinateReader.MockReadShipCoordinates += (o, p) => { return(new Coordinates('H', 8)); }; console.MockReadLine += () => { return("2"); }; ship.InitilizeShip().ShouldBeTrue(); ship.CoordinatesList.Count.ShouldBe(3); ship.Orientation.ShouldBe(Enums.Orientation.Horizontal); ship.CoordinatesList.Any(x => x.XCoordinate == 'H' && x.YCoordinate == 8).ShouldBe(true); ship.CoordinatesList.Any(x => x.XCoordinate == 'G' && x.YCoordinate == 8).ShouldBe(true); ship.CoordinatesList.Any(x => x.XCoordinate == 'F' && x.YCoordinate == 8).ShouldBe(true); }
public void TestBoard() { var coordinateReader = new MockCoordinatesReader(); var console = new MockConsoleWrapper(); var ship = new MockShip(); IBoard board = new Board("player 1"); var matrix = board.GetMatrix(); foreach (var kvp in matrix) { kvp.Value.ShouldBe(CoordinateStatus.Empty); } ship.MockCoordinatesList += () => { return(new List <Coordinates> { new Coordinates('A', 3), new Coordinates('A', 2), new Coordinates('A', 1) }); }; board.AddShipToMatrix(ship); board.Ship.CoordinatesList.Count.ShouldBe(3); board.UpdateMatrix(board.Ship.CoordinatesList, CoordinateStatus.Ship); matrix = board.GetMatrix(); List <int> yCoordinateList = new List <int> { 1, 2, 3 }; foreach (var kvp in matrix) { if (kvp.Key.XCoordinate == 'A' && yCoordinateList.Contains(kvp.Key.YCoordinate)) { kvp.Value.ShouldBe(CoordinateStatus.Ship); } else { kvp.Value.ShouldBe(CoordinateStatus.Empty); } } board.UpdateMatrix(new Coordinates('A', 3), CoordinateStatus.Hit); board.UpdateMatrix(new Coordinates('A', 4), CoordinateStatus.Miss); matrix = board.GetMatrix(); foreach (var kvp in matrix) { if (kvp.Key.XCoordinate == 'A' && kvp.Key.YCoordinate == 3) { kvp.Value.ShouldBe(CoordinateStatus.Hit); } else if (kvp.Key.XCoordinate == 'A' && kvp.Key.YCoordinate == 4) { kvp.Value.ShouldBe(CoordinateStatus.Miss); } else if (kvp.Key.XCoordinate == 'A' && ((kvp.Key.YCoordinate == 1) || kvp.Key.YCoordinate == 2)) { kvp.Value.ShouldBe(CoordinateStatus.Ship); } else { kvp.Value.ShouldBe(CoordinateStatus.Empty); } } }