public void ScriptReturnsScriptWithStatements() { var s = JS.Script(new List <Statement> { JS.Empty(), JS.Return(JS.Null()) }); Assert.AreEqual(";return null;", s.ToString()); }
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()); }
public void IteratorRequiresCollection() { var iterator = new IteratorStatement(); iterator.Variable = JS.Id("a"); iterator.Statement = JS.Empty(); Expect.Throw <InvalidOperationException>(() => iterator.ToString()); }
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()); }
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()); }
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()); }
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()); }
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()); }
public void EmptyStatementProducesEmptyStatement() { var e = JS.Empty(); Assert.AreEqual(";", e.ToString()); }
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()); }