public void TestXboxGamepadSetXboxGamepadStateThrowsWhenNotConnected()
        {
            var gamepad = new GamesTest.Xbox.Input.XboxGamepad(this.XboxConsole);

            XboxGamepadState state = new XboxGamepadState();

            this.VerifyGamepadThrowsFunc <XboxInputException>(
                () => gamepad.SetXboxGamepadState(state),
                "SetGamepadState did not throw an exception when not connected.");
        }
        public void TestXboxGamepadSendGamepadStateCallsAdapterSendGamepadReportCorrectly()
        {
            var gamepad      = new GamesTest.Xbox.Input.XboxGamepad(this.XboxConsole);
            var gamepadState = new XboxGamepadState();

            bool adapterCalled = false;

            this.shimAdapter = new ShimXboxConsoleAdapterBase(new StubXboxConsoleAdapterBase(null))
            {
                SendGamepadReportStringUInt64XboxGamepadState = (systemIpAddress, gamepadId, adapterGamepadState)
                                                                =>
                {
                    adapterCalled = true;
                    Assert.AreEqual(this.XboxConsole.SystemIpAddressString, systemIpAddress, "SystemIpAddress did not match the one from the XboxConsole");
                    Assert.AreEqual(gamepad.Id, gamepadId, "Gamepad Id is not equal to one being set");
                    Assert.AreEqual(gamepadState, adapterGamepadState, "GamepadState not equal to one being set");
                }
            };
            gamepad.Connect();
            gamepad.SetXboxGamepadState(gamepadState);

            Assert.IsTrue(adapterCalled, "Adapter SetGamepadState never called");
        }
        public void TestXboxGamepadSetGamepadStateWithNullState()
        {
            var gamepad = new GamesTest.Xbox.Input.XboxGamepad(this.XboxConsole);

            gamepad.SetXboxGamepadState(null);
        }