Example #1
0
        public void Run(string requestString)
        {
            var tokenizer = new RequestTokenizer();
            var tokens = tokenizer.GetTokens(requestString).Skip(1).ToList();

            if (tokens.Count == 0)
            {
                this.ShowHelp();
                return;
            }

            var request = tokens.FirstOrDefault();
            tokens.RemoveAt(0);

            var parser = this.GetRequestParser(request);

            var arg = parser.GetArg(tokens);

            if(arg == null)
                throw new NullReferenceException("request parser returned a null arg");

            var handler = this.GetHandlerForArg(arg);

            handler.Handle(arg);
        }
 public void can_parse_symbols(string str)
 {
     var parser = new RequestTokenizer();
     var args = parser.GetTokens(str).ToList();
     Assert.AreEqual(2, args.Count);
     Assert.AreEqual("test1", args[0]);
     Assert.AreEqual("test2", args[1]);
 }
 public void can_parse_all()
 {
     var parser = new RequestTokenizer();
     var str = "kb a7 db/bounce { db: 'localhost', store: \"c:\\program files\\mssqlserver\\db.dat\"}";
     var args = parser.GetTokens(str).ToList();
     Assert.AreEqual("kb", args[0]);
     Assert.AreEqual("a7", args[1]);
     Assert.AreEqual("db/bounce", args[2]);
     Assert.AreEqual("{ db: 'localhost', store: \"c:\\program files\\mssqlserver\\db.dat\"}", args[3]);
 }
 public void can_parse_string_with_quote()
 {
     var parser = new RequestTokenizer();
     var args = parser.GetTokens("\"hello there \\\"juanka\\\"\"").ToList();
     Assert.AreEqual("hello there \"juanka\"", args[0]);
 }
 public string can_parse_object(string str)
 {
     var parser = new RequestTokenizer();
     var arg = parser.GetTokens(str).ToList().FirstOrDefault();
     return arg;
 }
 public void can_parse_empty_str(string str)
 {
     var parser = new RequestTokenizer();
     var args = parser.GetTokens(str);
     Assert.AreEqual(false, args.Any());
 }
 public void can_new()
 {
     var parser = new RequestTokenizer();
 }