public void TestQueryParsing()
        {
            IQueryValidator queryValidator = MockRepository.GenerateStub<IQueryValidator>();
            IDirectoryInfoProcessor directoryInfoProcessor =
                MockRepository.GenerateStub<IDirectoryInfoProcessor>();

            string testQueryString =
                "check keyValue:\"someKey\" paths:\"web.config\" expected:\"someValue\"";

            queryValidator.Stub(x => x.ValidateQuerySyntax(Arg<string[]>.Is.Anything))
                .Return(new OperationResult(successful: true));
            queryValidator.Stub(x => x.ValidateQuerySyntax(Arg<string>.Is.Anything))
                .Return(new OperationResult(successful: true));

            directoryInfoProcessor.Stub(x => x.GetQueryPathes(Arg<string[]>.Is.Anything))
                .Return(new List<string>() { "web.config" });

            QueryParser parser = new QueryParser(queryValidator, directoryInfoProcessor);
            Query query = parser.ParseQuery(testQueryString);

            Assert.AreEqual(ECommand.check, query.Command);
            Assert.AreEqual(new List<string>() { "web.config" }, query.Paths);
            Assert.AreEqual("someKey", query.KeyValue);
            Assert.AreEqual("someValue", query.Expected);
        }
        public void TestValidationCalling()
        {
            IQueryValidator queryValidator = MockRepository.GenerateStub<IQueryValidator>();
            IDirectoryInfoProcessor directoryInfoProcessor =
                MockRepository.GenerateStub<IDirectoryInfoProcessor>();

            string query = "check keyValue:\"myKey\" expected:\"myValue\"";

            queryValidator.Stub(x => x.ValidateQuerySyntax(Arg<string[]>.Is.Anything))
                .Return(new OperationResult(successful: true));
            queryValidator.Stub(x => x.ValidateQuerySyntax(Arg<string>.Is.Anything))
                .Return(new OperationResult(successful: true));

            directoryInfoProcessor.Stub(x => x.GetQueryPathes(Arg<string[]>.Is.Anything))
                .Return(new List<string>());

            QueryParser parser = new QueryParser(queryValidator, directoryInfoProcessor);
            parser.ParseQuery(query);

            queryValidator.AssertWasCalled(x => x.ValidateQuerySyntax(query));
        }