public void RaiseWhenInvalidCharacter() { Lexer lexer = new Lexer("["); MyAssert.Throws <LexerException>(() => lexer.NextToken(), "Unexpected '['"); }
public void RaiseWhenUnclosedString() { Lexer lexer = new Lexer("\"foo"); MyAssert.Throws <LexerException>(() => lexer.NextToken(), "Unclosed String"); }
public void RaiseWhenUnknownVerb() { Parser parser = new Parser("rule\r\nwhen\r\na foo b"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Unexpected 'foo'"); }
public void RaiseWhenNoRule() { Parser parser = new Parser(new StringReader("foo")); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Expected 'rule'"); }
public void RaiseWhenNoValueInCondition() { Parser parser = new Parser("rule\r\nwhen\r\na is"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Unexpected End of Input"); }
public void RaiseWhenNoWhenInRule() { Parser parser = new Parser("rule\r\n1 is a"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Expected 'when'"); }
public void RaiseWhenNoNameAtStartOfCondition() { Parser parser = new Parser("rule\r\nwhen\r\n1 is a"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Expected Name"); }
public void RaiseWhenUnexpectedValueInCondition() { Parser parser = new Parser("rule\r\nwhen\r\na is <="); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Unexpected '<='"); }
public void RaiseWhenVerbIsANumber() { Parser parser = new Parser("rule\r\nwhen\r\na 1 b\r\nthen\r\na\r\nend"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Unexpected '1'"); }
public void TestIncorrectPath() { MyAssert.Throws <ArgumentException>(() => new Route("test", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test>", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/<test", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/[test", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/<test]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test/[test]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/<test>[/test", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test[/<test]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test[/test>]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test[/<test]>", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test/", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/<>", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test[/]", null, null)); MyAssert.Throws <ArgumentException>(() => new Route("/test[/<>]", null, null)); }
public void RaiseWhenTwoManyWordsInCondition() { Parser parser = new Parser("rule\r\nwhen\r\na is 48 c"); MyAssert.Throws <LexerException>(() => parser.ParseRule(), "Expected End of Line/Input"); }