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()); }