Skip to content

Commit

Permalink
#185 Rendering Enums calls name(), instead of toString()
Browse files Browse the repository at this point in the history
  • Loading branch information
casid committed Nov 19, 2022
1 parent a699cba commit 3c4cfc5
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 1 addition & 1 deletion jte-runtime/src/main/java/gg/jte/TemplateOutput.java
Expand Up @@ -21,7 +21,7 @@ default void writeUserContent(String value) {

default void writeUserContent(Enum<?> value) {
if (value != null) {
writeContent(value.toString());
writeContent(value.name());
}
}

Expand Down
19 changes: 19 additions & 0 deletions jte/src/test/java/gg/jte/output/AbstractTemplateOutputTest.java
Expand Up @@ -84,6 +84,12 @@ void writeEnum() {
thenOutputIs("Html");
}

@Test
void writeEnum_nameIsUsed() {
output.writeUserContent(EnumWithToStringOverride.Volvo);
thenOutputIs("Volvo");
}

@Test
void writeNull() {
output.writeUserContent((String) null);
Expand Down Expand Up @@ -141,4 +147,17 @@ void writer_unusedMethodsAreNoops() throws IOException {
output.getWriter().flush();
output.getWriter().close();
}

public enum EnumWithToStringOverride {
Volvo,
Saab,
Fiat,
Audi,
;

@Override
public String toString() {
return name() + " is a fine car!";
}
}
}

0 comments on commit 3c4cfc5

Please sign in to comment.