public void InsertWithNoPositions() { JSBuilder builder = new JSBuilder(); builder.Insert(0, "abcd"); Assert.AreEqual("abcd", builder.ToString()); }
public void NestedTryBlocks() { JSBuilder builder = new JSBuilder(); builder.Try(tryBlock1 => { tryBlock1.Try(tryBlock2 => { }) .Catch("error1", catchBlock2 => { }); }) .Catch("error2", catchBlock1 => { }); AssertEx.EqualLines( new[] { "try {", " try {", " } catch (error1) {", " }", "} catch (error2) {", "}" }, builder); }
public void HasChangedLinesSinceWithZeroIndexAndSingleLine() { JSBuilder builder = new JSBuilder(); builder.Text("abc"); Assert.IsFalse(builder.HasChangedLinesSince(0)); }
public void Constructor() { JSBuilder builder = new JSBuilder(); Assert.AreEqual("", builder.ToString()); Assert.IsFalse(builder.WriteNewLineBeforeNextText); }
public void NestedElseIfBlocks() { JSBuilder builder = new JSBuilder(); builder.If("a1", ifBlock1 => { ifBlock1.If("b1", ifBlock2 => { }) .ElseIf("b2", elseIfBlock2 => { }); }) .ElseIf("a2", elseIfBlock1 => { });; AssertEx.EqualLines( new[] { "if (a1) {", " if (b1) {", " } else if (b2) {", " }", "} else if (a2) {", "}", }, builder.ToString()); }
public void HasChangedLinesSinceWithZeroIndexAndMultipleLines() { JSBuilder builder = new JSBuilder(); builder.Text("a\nb\nc"); Assert.IsTrue(builder.HasChangedLinesSince(0)); }
public void DocumentCommentWithNoContents() { JSBuilder builder = new JSBuilder(); builder.DocumentationComment(comment => { }); Assert.AreEqual("", builder.ToString()); }
public void InsertNewLine() { JSBuilder builder = new JSBuilder(); builder.InsertNewLine(0); Assert.AreEqual("\n", builder.ToString()); }
public void InsertBetweenExistingPositions() { JSBuilder builder = new JSBuilder(); builder.Text("ab"); BuilderPosition p1 = builder.CreatePosition(); builder.Text("cd"); BuilderPosition p2 = builder.CreatePosition(); builder.Text("ef"); Assert.AreEqual(2, p1.CharactersAfterPreviousPosition); Assert.AreEqual(2, p1.GetIndexInBuilder()); Assert.AreEqual(2, p2.CharactersAfterPreviousPosition); Assert.AreEqual(4, p2.GetIndexInBuilder()); builder.Insert(3, "Z"); Assert.AreEqual("abcZdef", builder.ToString()); Assert.AreEqual(2, p1.CharactersAfterPreviousPosition); Assert.AreEqual(2, p1.GetIndexInBuilder()); Assert.AreEqual(3, p2.CharactersAfterPreviousPosition); Assert.AreEqual(5, p2.GetIndexInBuilder()); }
public void HasChangedLinesSinceWithNegativeIndexAndMultipleLines() { JSBuilder builder = new JSBuilder(); builder.Text("a\nb\nc"); Assert.ThrowsException <IndexOutOfRangeException>(() => builder.HasChangedLinesSince(-1)); }
public void NestedElseBlocks() { JSBuilder builder = new JSBuilder(); builder.If("a", ifBlock1 => { ifBlock1.If("b", ifBlock2 => { }) .Else(elseBlock2 => { }); }) .Else(elseBlock1 => { });; AssertEx.EqualLines( new[] { "if (a) {", " if (b) {", " } else {", " }", "} else {", "}", }, builder.ToString()); }
public void TextWithNewLine() { JSBuilder builder = new JSBuilder(); builder.Text("\n"); Assert.AreEqual("\n", builder.ToString()); Assert.IsFalse(builder.WriteNewLineBeforeNextText); }
public void LineWithText() { JSBuilder builder = new JSBuilder(); builder.Line("Hello"); Assert.AreEqual("Hello", builder.ToString()); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void LineWithNoArguments() { JSBuilder builder = new JSBuilder(); builder.Line(); Assert.AreEqual("", builder.ToString()); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void LineWithEmptyTwice() { JSBuilder builder = new JSBuilder(); builder.Line(""); builder.Line(""); Assert.AreEqual("\n", builder.ToString()); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void CreatePositionWithEmptyBuilder() { JSBuilder builder = new JSBuilder(); BuilderPosition p = builder.CreatePosition(); Assert.AreEqual(0, p.CharactersAfterPreviousPosition); Assert.AreEqual(0, p.GetIndexInBuilder()); Assert.AreSame(p, builder.CreatePosition()); }
public void InsertAtAnExistingPosition() { JSBuilder builder = new JSBuilder(); BuilderPosition p = builder.CreatePosition(); builder.Insert(0, "abcd"); Assert.AreEqual("abcd", builder.ToString()); Assert.AreEqual(4, p.CharactersAfterPreviousPosition); Assert.AreEqual(4, p.GetIndexInBuilder()); }
public void CreatePositionWhenAnotherPositionAlreadyExists() { JSBuilder builder = new JSBuilder(); BuilderPosition p1 = builder.CreatePosition(); builder.Text("abcd"); BuilderPosition p2 = builder.CreatePosition(); Assert.AreEqual(0, p1.CharactersAfterPreviousPosition); Assert.AreEqual(0, p1.GetIndexInBuilder()); Assert.AreEqual(4, p2.CharactersAfterPreviousPosition); Assert.AreEqual(4, p2.GetIndexInBuilder()); }
private static string ParameterListActionToString(Action <JSParameterList> parameterListAction) { string parameterListString = null; if (parameterListAction != null) { JSBuilder parameterListBuilder = new JSBuilder(); JSParameterList parameterList = new JSParameterList(parameterListBuilder); parameterListAction(parameterList); parameterListString = parameterListBuilder.ToString(); } return(parameterListString); }
public void TryWithEmptyBlock() { JSBuilder builder = new JSBuilder(); builder.Try(tryBlock => { }); AssertEx.EqualLines( new[] { "try {", "}" }, builder); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void IfWithEmptyBlock() { JSBuilder builder = new JSBuilder(); builder.If("true", ifBlock => { }); AssertEx.EqualLines( new[] { "if (true) {", "}" }, builder); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void DocumentationCommentWithDescription() { JSBuilder builder = new JSBuilder(); builder.DocumentationComment(comment => { comment.Description("Hello"); }); AssertEx.EqualLines( "/**\n" + " * Hello\n" + " */", builder); }
public void DocumentationCommentWithDescriptionAndParameter() { JSBuilder builder = new JSBuilder(); builder.DocumentationComment(comment => { comment.Description("This is my description."); comment.Parameter("parameterName", "parameterType", "This is my parameter description."); }); AssertEx.EqualLines( "/**\n" + " * This is my description.\n" + " * @param {parameterType} parameterName This is my parameter description.\n" + " */", builder); }
public void IfWithLineAfterwards() { JSBuilder builder = new JSBuilder(); builder.If("true", ifBlock => { }); builder.Line("Test"); AssertEx.EqualLines( new[] { "if (true) {", "}", "Test" }, builder); Assert.IsTrue(builder.WriteNewLineBeforeNextText); }
public void InsertAfterAnExistingPosition() { JSBuilder builder = new JSBuilder(); builder.Text("abc"); BuilderPosition p = builder.CreatePosition(); builder.Text("df"); Assert.AreEqual(3, p.CharactersAfterPreviousPosition); Assert.AreEqual(3, p.GetIndexInBuilder()); builder.Insert(4, "e"); Assert.AreEqual(3, p.CharactersAfterPreviousPosition); Assert.AreEqual(3, p.GetIndexInBuilder()); }
public void AddPropertyToParentObjectWhileBuildingChildObject() { JSBuilder builder = new JSBuilder(); InvalidOperationException exception = Assert.ThrowsException <InvalidOperationException>(() => { builder.Object((JSObject parentObject) => { parentObject.ObjectProperty("child", (JSObject childObject) => { childObject.TextProperty("a", "A"); parentObject.TextProperty("b", "B"); }); }); }); Assert.AreEqual("Cannot add a property to a JSObject while constructing its child property (\"child\").", exception.Message); }
public void NestedIfBlocks() { JSBuilder builder = new JSBuilder(); builder.If("a", ifBlock1 => { Assert.IsTrue(builder.WriteNewLineBeforeNextText); AssertEx.EqualLines( "if (a) {", builder); ifBlock1.If("b", ifBlock2 => { Assert.IsTrue(builder.WriteNewLineBeforeNextText); AssertEx.EqualLines( new[] { "if (a) {", " if (b) {" }, builder); }); Assert.IsTrue(builder.WriteNewLineBeforeNextText); AssertEx.EqualLines( new[] { "if (a) {", " if (b) {", " }" }, builder); }); Assert.IsTrue(builder.WriteNewLineBeforeNextText); AssertEx.EqualLines( new[] { "if (a) {", " if (b) {", " }", "}" }, builder); }
public void DocumentationCommentWithLeadingWhitespaceInDescription() { JSBuilder builder = new JSBuilder(); builder.DocumentationComment(comment => { comment.Description("This\n is\n\tmy\ndescription."); }); // The leading whitespace in the description should be preserved, but the AutoRest // WordWrap() trims away leading whitespace. AssertEx.EqualLines( "/**\n" + " * This\n" + " * is\n" + " * my\n" + " * description.\n" + " */", builder); }
public void IfBlockWithSurroundingEmptyLines() { JSBuilder builder = new JSBuilder(); builder.Line(); builder.If("true", ifBlock => { }); builder.Line(); AssertEx.EqualLines( new[] { "", "if (true) {", "}", "" }, builder.ToString()); }
public void IfBlockWithSurroundingLines() { JSBuilder builder = new JSBuilder(); builder.Line("const x = 5;"); builder.If("true", ifBlock => { }); builder.Line("const y = 6;"); AssertEx.EqualLines( new[] { "const x = 5;", "if (true) {", "}", "const y = 6;" }, builder.ToString()); }