示例#1
0
        public void ProgramArgumentParserTestsCanParseQuery(string inputQuery, string expectedProgram, string expectedProgramArguments)
        {
            // Arrange
            var argumentParsers = new IProgramArgumentParser[]
            {
                new DoubleDashProgramArgumentParser(),
                new InferedProgramArgumentParser(),
                new NoArgumentsArgumentParser(),
            };

            // basic version of the Quey parser which can be found at Wox.Core.Plugin.QueryBuilder but did not want to create a project reference
            var splittedSearchString = inputQuery?.Split(Query.TermSeparator, System.StringSplitOptions.RemoveEmptyEntries);
            var cleanQuery           = string.Join(Query.TermSeparator, splittedSearchString);
            var query = new Query(cleanQuery, cleanQuery, new ReadOnlyCollection <string>(splittedSearchString), string.Empty);

            // Act
            string program = null, programArguments = null;

            foreach (var argumentParser in argumentParsers)
            {
                if (argumentParser.TryParse(query, out program, out programArguments))
                {
                    break;
                }
            }

            // Assert
            Assert.AreEqual(expectedProgram, program);
            Assert.AreEqual(expectedProgramArguments, programArguments);
        }
示例#2
0
        public void ProgramArgumentParserTestsCanParseQuery(string inputQuery, string expectedProgram, string expectedProgramArguments)
        {
            // Arrange
            var argumentParsers = new IProgramArgumentParser[]
            {
                new DoubleDashProgramArgumentParser(),
                new InferredProgramArgumentParser(),
                new NoArgumentsArgumentParser(),
            };

            var query = new Query(inputQuery);

            // Act
            string program = null, programArguments = null;

            foreach (var argumentParser in argumentParsers)
            {
                if (argumentParser.TryParse(query, out program, out programArguments))
                {
                    break;
                }
            }

            // Assert
            Assert.AreEqual(expectedProgram, program);
            Assert.AreEqual(expectedProgramArguments, programArguments);
        }