using System; using UnitTestSharp; namespace Clave.UnitTests { public class KeyCodesTests : TestFixture { public class IsKeyboardTests : TestFixture { public void FirstAndLastKeyboardKeys_AreKeyboard() { CheckTrue(KeyCodes.IsKeyboard(KeyCode.A)); CheckTrue(KeyCodes.IsKeyboard(KeyCode.NumpadEnter)); } public void None_IsNot() { CheckFalse(KeyCodes.IsKeyboard(KeyCode.None)); } public void MouseAndGamepad_AreNot() { CheckFalse(KeyCodes.IsKeyboard(KeyCode.MouseLeft)); CheckFalse(KeyCodes.IsKeyboard(KeyCode.GamepadDPadRight)); } } public class IsMouseTests : TestFixture { public void ButtonsAndWheel_AreMouse() { CheckTrue(KeyCodes.IsMouse(KeyCode.MouseLeft)); CheckTrue(KeyCodes.IsMouse(KeyCode.MouseForward)); CheckTrue(KeyCodes.IsMouse(KeyCode.WheelUp)); CheckTrue(KeyCodes.IsMouse(KeyCode.WheelDown)); } public void NeighboursOfTheBlock_AreNot() { CheckFalse(KeyCodes.IsMouse(KeyCode.NumpadEnter)); CheckFalse(KeyCodes.IsMouse(KeyCode.GamepadA)); } } public class IsGamepadTests : TestFixture { public void FirstAndLastButtons_AreGamepad() { CheckTrue(KeyCodes.IsGamepad(KeyCode.GamepadA)); CheckTrue(KeyCodes.IsGamepad(KeyCode.GamepadDPadRight)); } public void NeighboursOfTheBlock_AreNot() { CheckFalse(KeyCodes.IsGamepad(KeyCode.WheelDown)); CheckFalse(KeyCodes.IsGamepad(KeyCode.None)); } } public class EveryKeyTests : TestFixture { public void BelongsToExactlyOneDevice() { foreach (KeyCode key in Enum.GetValues(typeof(KeyCode))) { if (key == KeyCode.None) { continue; } int devices = (KeyCodes.IsKeyboard(key) ? 1 : 0) + (KeyCodes.IsMouse(key) ? 1 : 0) + (KeyCodes.IsGamepad(key) ? 1 : 0); CheckEqual(1, devices); } } } } }