public void ScriptReturnsScriptWithStatements()
        {
            var s = JS.Script(new List <Statement> {
                JS.Empty(), JS.Return(JS.Null())
            });

            Assert.AreEqual(";return null;", s.ToString());
        }
Example #2
0
        public void IteratorSupportsDeclaration()
        {
            var id         = JS.Id("a");
            var collection = JS.Array();
            var iterator   = new IteratorStatement(JS.Var(id), collection, JS.Empty());

            Assert.AreEqual("for(var a in []);", iterator.ToString());
        }
Example #3
0
        public void IteratorRequiresCollection()
        {
            var iterator = new IteratorStatement();

            iterator.Variable  = JS.Id("a");
            iterator.Statement = JS.Empty();

            Expect.Throw <InvalidOperationException>(() => iterator.ToString());
        }
Example #4
0
        public void IteratorHasHelpers()
        {
            var statement1 = JS.For(JS.Id("a")).In(JS.Array()).Do();
            var statement2 = JS.For(JS.Id("b")).In(JS.Id("c")).Do(new List <Statement> {
                JS.Empty()
            });

            Assert.AreEqual("for(a in []);", statement1.ToString());
            Assert.AreEqual("for(b in c);", statement2.ToString());
        }
        public void WithStatementHasHelpers()
        {
            var statement1 = JS.With(JS.Id("a")).Do(JS.Empty());
            var statement2 = JS.With(JS.Id("a")).Do(new List <Statement> {
                JS.Empty()
            });

            Assert.AreEqual("with(a);", statement1.ToString());
            Assert.AreEqual("with(a);", statement2.ToString());
        }
Example #6
0
        public void WhileStatementProducesEmptyWhile()
        {
            var statement = new WhileStatement();

            statement.Condition = true;
            statement.Statement = JS.Empty();

            Assert.AreEqual("true;", statement.Condition.ToString());
            Assert.AreEqual(";", statement.Statement.ToString());
            Assert.AreEqual("while(true);", statement.ToString());
        }
Example #7
0
        public void IteratorProducesForIn()
        {
            var id         = JS.Id("a");
            var collection = JS.Array();
            var iterator   = new IteratorStatement(id, collection, JS.Empty());

            Assert.AreEqual("a;", iterator.Variable.ToString());
            Assert.AreEqual("[];", iterator.Collection.ToString());
            Assert.AreEqual(";", iterator.Statement.ToString());
            Assert.AreEqual("for(a in []);", iterator.ToString());
        }
Example #8
0
        public void WhileStatementRequiresConditionAndStatement()
        {
            var statement = new WhileStatement();

            Expect.Throw <InvalidOperationException>(() => statement.ToString());

            statement.Condition = true;

            Expect.Throw <InvalidOperationException>(() => statement.ToString());

            statement.Statement = JS.Empty();

            Assert.AreEqual("while(true);", statement.ToString());
        }
Example #9
0
        public void WhileStatementHasHelpers()
        {
            var statement1 = JS.While(true).Do(JS.Empty());

            Assert.AreEqual("true;", statement1.Condition.ToString());
            Assert.AreEqual(";", statement1.Statement.ToString());
            Assert.AreEqual("while(true);", statement1.ToString());

            var statement2 = JS.While(true).Do(new List <Statement> {
                JS.Empty()
            });

            Assert.AreEqual("true;", statement2.Condition.ToString());
            Assert.AreEqual(";", statement2.Statement.ToString());
            Assert.AreEqual("while(true);", statement2.ToString());
        }
Example #10
0
        public void EmptyStatementProducesEmptyStatement()
        {
            var e = JS.Empty();

            Assert.AreEqual(";", e.ToString());
        }
Example #11
0
        public void EmptyStatementProducesBlock()
        {
            var b = JS.BlockOrStatement(JS.Empty(), JS.Empty());

            Assert.AreEqual("{;;}", b.ToString());
        }
        public void LoopStatementProducesInfiniteLoop()
        {
            var statement = new LoopStatement(null, null, null, JS.Empty());

            Assert.AreEqual("for(;;);", statement.ToString());
        }
        public void LabelReturnsLabel()
        {
            var l = JS.Label("l", JS.Empty());

            Assert.AreEqual("l:;", l.ToString());
        }