コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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");
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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"));
        }