Skip to content

Commit

Permalink
Fix writeInline onSection bug
Browse files Browse the repository at this point in the history
We were not writing intercepted sections that did not contain newlines.
  • Loading branch information
mtdowling committed Oct 31, 2020
1 parent 14b004d commit 7512f16
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,34 +113,4 @@ public void importsUseReferencesFromSymbols() {
assertThat(writer.getImportContainer().imports, hasKey("MyString"));
assertThat(writer.getImportContainer().imports.get("MyString"), equalTo("java.lang.String"));
}

@Test
public void sectionWithWrite() {
String testSection = "TEST_SECTION";
MyWriter writer = new MyWriter("foo");

writer.onSection(testSection, text -> {
writer.write(text + "addition");
});

writer.pushState(testSection);
writer.popState();

assertThat(writer.toString(), equalTo("addition\n"));
}

@Test
public void sectionWithWriteInline() {
String testSection = "TEST_SECTION";
MyWriter writer = new MyWriter("foo");

writer.onSection(testSection, text -> {
writer.writeInline(text + "inline addition");
});

writer.pushState(testSection);
writer.popState();

assertThat(writer.toString(), equalTo("inline addition\n"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -667,10 +667,10 @@ private String getTrimmedPoppedStateContents(State state) {

// Remove the trailing newline, if present, since it gets added in the
// final call to writeOptional.
if (builder != null
&& builder.length() > 0
&& builder.charAt(builder.length() - 1) == currentState.newline) {
builder.delete(builder.length() - 1, builder.length());
if (builder != null && builder.length() > 0) {
if (builder.charAt(builder.length() - 1) == currentState.newline) {
builder.delete(builder.length() - 1, builder.length());
}
result = builder.toString();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -696,4 +696,33 @@ public void canComposeSetWithSection() {

assertThat(writer.toString(), equalTo("[1, 2, 3]\n"));
}

public void sectionWithWrite() {
String testSection = "TEST_SECTION";
CodeWriter writer = new CodeWriter();

writer.onSection(testSection, text -> {
writer.write(text + "addition");
});

writer.pushState(testSection);
writer.popState();

assertThat(writer.toString(), equalTo("addition\n"));
}

@Test
public void sectionWithWriteInline() {
String testSection = "TEST_SECTION";
CodeWriter writer = new CodeWriter();

writer.onSection(testSection, text -> {
writer.writeInline(text + "inline addition");
});

writer.pushState(testSection);
writer.popState();

assertThat(writer.toString(), equalTo("inline addition\n"));
}
}

0 comments on commit 7512f16

Please sign in to comment.