public void FindCommandTest()
        {
            Native.NativeLoader = new NoNativeLoader();

            Action <string, string, string, bool> action = (methodName, commandPath, runCommand, expectSuccess) =>
            {
                var manager        = new CommandsManager(new TestGameMode());
                var expectedMethod = GetType().GetMethod(methodName);
                manager.Register(new[] { new CommandPath(commandPath) }, null, false, null, expectedMethod, null);

                var actualCommand = (manager.GetCommandForText(new BasePlayer(), runCommand) as DefaultCommand)?.Method;

                if (expectSuccess)
                {
                    Assert.AreEqual(expectedMethod, actualCommand);
                }
                else
                {
                    Assert.AreNotEqual(expectedMethod, actualCommand);
                }
            };

            action("A", "cmd a", "/cmd a", true);
            action("A", "cmd a", "/cmd a a", true);
            action("A", "cmd b", "/cmd a", false);
            action("A", "cmd c a", "/cmd c", false);
        }
        public void FindCommandTest()
        {
            Action<string, string, string, bool> action = (methodName, commandPath, runCommand, expectSuccess) =>
            {
                var manager = new CommandsManager(new TestGameMode());
                var expectedMethod = GetType().GetMethod(methodName);
                manager.Register(new[] {new CommandPath(commandPath)}, null, false, null, expectedMethod, null);

                var actualCommand = (manager.GetCommandForText(new BasePlayer(), runCommand) as DefaultCommand)?.Method;

                if (expectSuccess)
                    Assert.AreEqual(expectedMethod, actualCommand);
                else
                    Assert.AreNotEqual(expectedMethod, actualCommand);
            };

            action("A", "cmd a", "/cmd a", true);
            action("A", "cmd a", "/cmd a a", true);
            action("A", "cmd b", "/cmd a", false);
            action("A", "cmd c a", "/cmd c", false);
        }