public void UpdateCamera_RotationKeyPressedAndSpecialKeyPressed_ExpectNoMovementAndRotation(Key pressedKey)
        {
            //Arrange
            var cameraViewModel = new FakeCameraViewModel();

            var testSubject = new KeyboardCameraControlViewModel(cameraViewModel);

            testSubject.ReactToKeyboardKeyDown(pressedKey);
            testSubject.ReactToKeyboardKeyDown(Key.LeftShift);

            //Act
            testSubject.UpdateCamera();

            //Assert
            Assert.That(cameraViewModel.LookAtPoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MovePoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MoveVector, Is.EqualTo(new Vector3D()));
            Assert.That(cameraViewModel.Rotation, Is.Not.EqualTo(0));
        }
        public void UpdateCamera_KeyPressedThenReleased_ExpectNoMovementOrRotation()
        {
            //Arrange
            var cameraViewModel = new FakeCameraViewModel();

            var testSubject = new KeyboardCameraControlViewModel(cameraViewModel);

            testSubject.ReactToKeyboardKeyDown(Key.W);
            testSubject.ReactToKeyboardKeyUp(Key.W);

            //Act
            testSubject.UpdateCamera();

            //Assert
            Assert.That(cameraViewModel.LookAtPoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MovePoint, Is.EqualTo(new Point3D()));
            Assert.That(cameraViewModel.MoveVector, Is.EqualTo(new Vector3D()));
            Assert.That(cameraViewModel.RotationX, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationY, Is.EqualTo(0));
            Assert.That(cameraViewModel.RotationZ, Is.EqualTo(0));
        }