public void ChangeSelection_PieceSelected_OldPieceIsNotSelected() { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(5); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; mockBoardModel.SelectionChanged += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[2], stubPlayer); boardController.AddNewPiece(stubPoints[4], stubPlayer); // Act boardController.ChangeSelection(stubPoints[4], stubPlayer, true); // Assert var oldPoint = mockBoardModel.Points.Where(p => p.Bounds.Contains(stubPoints[2].Bounds)).First(); Assert.IsFalse(oldPoint.Piece.IsSelected); }
public void AddNewPiece_InvalidPosition_NoPieceIsAdded( int pieceCount, int newPointModelIndex, int stubPointModelIndex) { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(pieceCount); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[stubPointModelIndex], stubPlayer); // Act boardController.AddNewPiece(stubPoints[newPointModelIndex], stubPlayer); // Assert Assert.AreEqual(1, mockBoardModel.Points.Count(p => p.Piece != null)); }
public void AddNewPiece_Position_NewPieceAddedRaised( int pointCount, int newPointModelIndex, int stubPointModelIndex, int expectedCallCount) { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(pointCount); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var stubBoardModel = Substitute.For <BoardModel>(stubBoardService); var mockEventSubscriber = new MockEventSubscriber(); stubBoardModel.NewPieceAdded += mockEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(stubBoardModel); boardController.AddNewPiece(stubPoints[stubPointModelIndex], stubPlayer); mockEventSubscriber.Reset(); // Act boardController.AddNewPiece(stubPoints[newPointModelIndex], stubPlayer); // Assert Assert.AreEqual(expectedCallCount, mockEventSubscriber.HitCount); }
public void AddNewPiece_EmptyPointAtPosition_ReturnsNewPieceAndIsNotNull() { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(5); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var stubBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); stubBoardModel.NewPieceAdded += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(stubBoardModel); // Act boardController.AddNewPiece(stubPoints[0], stubPlayer); // Assert Assert.IsNotNull(stubPoints[0].Piece); }
public void ChangeSelection_ValidPoint_PieceIsSelected() { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(5); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; mockBoardModel.SelectionChanged += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[2], stubPlayer); // Act boardController.ChangeSelection(stubPoints[2], stubPlayer, true); // Assert var selectedCount = mockBoardModel.Points.Count(p => p.Piece != null && p.Piece.IsSelected); Assert.AreEqual(1, selectedCount); }
public void RemovePiece_ValidPosition_PieceIsRemoved() { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(5); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; mockBoardModel.PieceRemoved += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[1], stubPlayer); // Act boardController.RemovePiece(stubPoints[1]); // Assert var expectedPoint = mockBoardModel.Points.Where(p => p.Bounds.Contains(stubPoints[1].Bounds)).First(); Assert.IsNull(expectedPoint.Piece); }
public void MoveSelectedPiece_InvalidNewPoint_PieceIsNotMoved( int pointCount, int newPointModelIndex, int stubPointModelIndex) { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(pointCount); var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; mockBoardModel.SelectionChanged += stubEventSubscriber.Handle; mockBoardModel.PieceMoved += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[stubPointModelIndex], stubPlayer); boardController.ChangeSelection(stubPoints[stubPointModelIndex], stubPlayer, true); // Act boardController.MoveSelectedPiece(stubPoints[newPointModelIndex]); // Assert var expectedPoint = mockBoardModel.Points.Where(p => p.Bounds.Contains(stubPoints[stubPointModelIndex].Bounds)).First(); Assert.IsNotNull(expectedPoint.Piece); }
public void MoveSelectedPiece_ValidSelectedPoint_PieceIsMovedToCorrectPoint() { // Arrange var stubPoints = TestHelper.CreatePointsWithBounds(5); stubPoints[2].Neighbors = new List <PointModel> { stubPoints[3] }; var stubBoardService = Substitute.For <IBoardService>(); stubBoardService.CreateInitialBoard() .Returns(new Tuple <List <PointModel>, List <List <PointModel> > >(stubPoints, null)); var mockBoardModel = Substitute.For <BoardModel>(stubBoardService); var stubEventSubscriber = new MockEventSubscriber(); mockBoardModel.NewPieceAdded += stubEventSubscriber.Handle; mockBoardModel.SelectionChanged += stubEventSubscriber.Handle; mockBoardModel.PieceMoved += stubEventSubscriber.Handle; var stubPlayer = Substitute.For <PlayerModel>(1, Colors.Yellow); var boardController = new BoardController(mockBoardModel); boardController.AddNewPiece(stubPoints[1], stubPlayer); boardController.ChangeSelection(stubPoints[1], stubPlayer, true); // Act boardController.MoveSelectedPiece(stubPoints[2]); // Assert var expectedPoint = mockBoardModel.Points.Where(p => p.Bounds.Contains(stubPoints[2].Bounds)).First(); Assert.AreEqual(stubPoints[2].Piece, expectedPoint.Piece); }