public void DecreasePlayerPositionY_WhenValidParameterIsPassed()
      {
          //Arrange
          var writerMock   = new Mock <IWriter>();
          var readerMock   = new Mock <IReader>();
          var appInt       = new Mock <IApplicationInterface>();
          var drawshipMock = new Mock <IDrawShip>();

          var gc = new GameControllerMock(writerMock.Object, readerMock.Object, appInt.Object, drawshipMock.Object);

          appInt.SetupGet(a => a.WindowHeight).Returns(35);

          var playerMock    = new Mock <IPlayer>();
          var spaceshipMock = new Mock <ISpaceShip>();

          var spaceship = spaceshipMock.Object;

          playerMock.SetupGet(p => p.Spaceship).Returns(spaceship);
          spaceshipMock.SetupAllProperties();

          spaceshipMock.SetupGet(s => s.Speed).Returns(1);

          spaceship.PositionY = 5;

          // Act
          gc.ExposedMoveUp(playerMock.Object);

          //Assert
          var expected = 4;
          var result   = spaceship.PositionY;

          Assert.AreEqual(expected, result);
      }
      public void ThrowNullReferenceException_WhenNullSpaceshipIsGiven()
      {
          //Arrange
          var writerMock   = new Mock <IWriter>();
          var readerMock   = new Mock <IReader>();
          var appInt       = new Mock <IApplicationInterface>();
          var drawshipMock = new Mock <IDrawShip>();


          var gc = new GameControllerMock(writerMock.Object, readerMock.Object, appInt.Object, drawshipMock.Object);

          var playerMock = new Mock <IPlayer>();

          // Act && Assert
          Assert.ThrowsException <NullReferenceException>(() => gc.ExposedMoveUp(null));
      }