public void TestGetExtendedState()
        {
            var gamePad = new MockedGamePad();

            gamePad.GetExtendedState();
            // No exception means success
        }
        public void TestPovs(int pov)
        {
            var gamePad = new MockedGamePad();

            gamePad.PovCount = pov + 1;

            gamePad.MovePov(pov, 12345);
            gamePad.Update();
            Assert.AreEqual(12345, gamePad.GetExtendedState().GetPov(pov));
        }
        public void TestAxisMovement()
        {
            var gamePad = new MockedGamePad();

            foreach (ExtendedAxes axis in Enum.GetValues(typeof(ExtendedAxes)))
            {
                gamePad.AvailableAxes = axis;

                gamePad.MoveAxis(axis, 0.1234f);
                gamePad.Update();
                Assert.AreEqual(0.1234f, gamePad.GetExtendedState().GetAxis(axis));
            }
        }
        public void TestSliderMovement()
        {
            var gamePad = new MockedGamePad();

            foreach (ExtendedSliders slider in Enum.GetValues(typeof(ExtendedSliders)))
            {
                gamePad.AvailableSliders = slider;

                gamePad.MoveSlider(slider, 0.1234f);
                gamePad.Update();
                Assert.AreEqual(0.1234f, gamePad.GetExtendedState().GetSlider(slider));
            }
        }
        public void TestExtendedButtons()
        {
            var gamePad = new MockedGamePad();

            gamePad.ButtonCount = 128;

            for (int index = 0; index < 128; ++index)
            {
                ExtendedGamePadState state = gamePad.GetExtendedState();
                Assert.IsFalse(state.IsButtonDown(index));

                gamePad.Press(index);
                gamePad.Update();

                state = gamePad.GetExtendedState();
                Assert.IsTrue(state.IsButtonDown(index));

                gamePad.Release(index);
                gamePad.Update();

                state = gamePad.GetExtendedState();
                Assert.IsFalse(state.IsButtonDown(index));
            }
        }