public void NoParameterPrintThrowsWhenExecuted() { var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), Substitute.For <IMessageManager>(), Substitute.For <IEventManager>()); var evaluator = lexer.Lex("print"); Assert.Throws <Exception>(() => evaluator.Execute()); }
public void MoreThanOneParamterPrintThrowsWhenExecuted() { var messages = Substitute.For <IMessageManager>(); var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), messages, Substitute.For <IEventManager>()); var evaluator = lexer.Lex("print abcd efg hijiijl kljlaisjdknmv rg"); Assert.Throws <Exception>(() => evaluator.Execute()); }
public void TestSimpleAdvanceCommand() { var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), Substitute.For <IMessageManager>(), Substitute.For <IEventManager>()); var command = lexer.Lex("adv go"); Assert.AreEqual("adv", command.Text); Assert.AreEqual("go", command.Body.Text); Assert.AreEqual(null, command.Body.Next); Assert.AreEqual(null, command.Next); }
public void SingleParameterPrintAddsMessageToMessageManager() { var messages = Substitute.For <IMessageManager>(); var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), messages, Substitute.For <IEventManager>()); var evaluator = lexer.Lex("print abcd"); Assert.DoesNotThrow(() => evaluator.Execute()); messages.Received(1).AddMessage(MessageType.Information, "abcd"); }
public void TestAdvanceMoreThanMaxParameters() { var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), Substitute.For <IMessageManager>(), Substitute.For <IEventManager>()); var command = lexer.Lex("adv go go go go go!!!!!"); Assert.AreEqual("adv", command.Text); Assert.AreEqual("go", command.Body.Text); Assert.AreEqual("go", command.Body.Next.Text); Assert.AreEqual("go", command.Body.Next.Next.Text); Assert.AreEqual("go", command.Body.Next.Next.Next.Text); Assert.AreEqual("go!!!!!", command.Body.Next.Next.Next.Next.Text); Assert.AreEqual(null, command.Body.Next.Next.Next.Next.Next); Assert.AreEqual(null, command.Next); }
public void TestNestedTimerCommand() { var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), Substitute.For <IMessageManager>(), Substitute.For <IEventManager>()); var command = lexer.Lex("( 15s ) => { ( 8s ) => { ( 729689s ) => { adv go } } } "); Assert.AreEqual("15s", command.Text); Assert.AreEqual("8s", command.Body.Text); Assert.AreEqual("729689s", command.Body.Body.Text); Assert.AreEqual("adv", command.Body.Body.Body.Text); Assert.AreEqual("go", command.Body.Body.Body.Body.Text); Assert.AreEqual(null, command.Body.Body.Body.Body.Next); Assert.AreEqual(null, command.Body.Body.Body.Next); Assert.AreEqual(null, command.Body.Body.Next); Assert.AreEqual(null, command.Body.Next); Assert.AreEqual(null, command.Next); }
public void TestNonsensicalInput() { var lexer = new CommandLexer(Substitute.For <IUIMap>(), Substitute.For <ISettingsStore>(), Substitute.For <IMessageManager>(), Substitute.For <IEventManager>()); Assert.Throws(typeof(Exception), () => lexer.Lex("awdh3ukhij 3lij 3lij5 la j3il li5 (a24 **248 **@&( kjahkuh")); }