Added more tests

This commit is contained in:
Erik C. Thauvin 2023-08-12 11:06:23 -07:00
parent a57c5afd62
commit 079671626a
7 changed files with 58 additions and 5 deletions

4
.idea/misc.xml generated
View file

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="EntryPointsManager">
<pattern value="rife.render.TemplateRenderersBuild" method="jacoco" />
<pattern value="rife.render.TemplateRenderersBuild" method="pmd" />
</component>
<component name="PDMPlugin"> <component name="PDMPlugin">
<option name="customRuleSets"> <option name="customRuleSets">
<list> <list>

Binary file not shown.

View file

@ -1,6 +1,7 @@
bld.downloadExtensionJavadoc=false bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true bld.downloadExtensionSources=true
bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.1-SNAPSHOT bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.2-SNAPSHOT
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.0-SNAPSHOT
bld.extension-tests=com.uwyn.rife2:bld-tests-badge:1.2.0 bld.extension-tests=com.uwyn.rife2:bld-tests-badge:1.2.0
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.downloadLocation= bld.downloadLocation=

View file

@ -2,6 +2,7 @@ package rife.render;
import rife.bld.BuildCommand; import rife.bld.BuildCommand;
import rife.bld.Project; import rife.bld.Project;
import rife.bld.extension.JacocoReportOperation;
import rife.bld.extension.PmdOperation; import rife.bld.extension.PmdOperation;
import rife.bld.extension.TestsBadgeOperation; import rife.bld.extension.TestsBadgeOperation;
import rife.bld.publish.PublishDeveloper; import rife.bld.publish.PublishDeveloper;
@ -9,6 +10,7 @@ import rife.bld.publish.PublishInfo;
import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishLicense;
import rife.bld.publish.PublishScm; import rife.bld.publish.PublishScm;
import java.io.IOException;
import java.util.List; import java.util.List;
import static rife.bld.dependencies.Repository.*; import static rife.bld.dependencies.Repository.*;
@ -60,8 +62,8 @@ public class TemplateRenderersBuild extends Project {
scope(compile) scope(compile)
.include(dependency("com.uwyn.rife2", "rife2", version(1, 7, 0))); .include(dependency("com.uwyn.rife2", "rife2", version(1, 7, 0)));
scope(test) scope(test)
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 9, 3))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 0)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 9, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 0)))
.include(dependency("org.assertj:assertj-core:3.24.2")); .include(dependency("org.assertj:assertj-core:3.24.2"));
} }
@ -69,8 +71,15 @@ public class TemplateRenderersBuild extends Project {
new TemplateRenderersBuild().start(args); new TemplateRenderersBuild().start(args);
} }
@BuildCommand(summary = "Generates Jacoco Reports")
public void jacoco() throws IOException {
new JacocoReportOperation()
.fromProject(this)
.execute();
}
@BuildCommand(summary = "Runs PMD analysis") @BuildCommand(summary = "Runs PMD analysis")
public void pmd() throws Exception { public void pmd() {
new PmdOperation() new PmdOperation()
.fromProject(this) .fromProject(this)
.failOnViolation(true) .failOnViolation(true)

View file

@ -40,6 +40,9 @@ class TestCase {
var bean = new ValueBean("this IS a TEST."); var bean = new ValueBean("this IS a TEST.");
t.setBean(bean); t.setBean(bean);
assertThat(t.getContent()).isEqualTo(bean.getValue() + ": this is a test."); assertThat(t.getContent()).isEqualTo(bean.getValue() + ": this is a test.");
bean = new ValueBean("");
t.setBean(bean);
assertThat(t.getContent()).isEqualTo(bean.getValue() + ": ");
} }
@Test @Test
@ -54,6 +57,8 @@ class TestCase {
var t = TemplateFactory.TXT.get("trim"); var t = TemplateFactory.TXT.get("trim");
t.setAttribute(FOO, "\t" + SAMPLE_TEXT + " \n"); t.setAttribute(FOO, "\t" + SAMPLE_TEXT + " \n");
assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT); assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT);
t.setAttribute(FOO, "");
assertThat(t.getContent()).isEmpty();
} }
@Test @Test
@ -68,5 +73,7 @@ class TestCase {
var t = TemplateFactory.TXT.get("uppercase"); var t = TemplateFactory.TXT.get("uppercase");
t.setAttribute("bar", SAMPLE_TEXT); t.setAttribute("bar", SAMPLE_TEXT);
assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT.toUpperCase(Localization.getLocale())); assertThat(t.getContent()).isEqualTo(SAMPLE_TEXT.toUpperCase(Localization.getLocale()));
t.setAttribute("bar", "");
assertThat(t.getContent()).isEmpty();
} }
} }

View file

@ -44,7 +44,9 @@ class TestFormat {
t.setAttribute(TestCase.FOO, "374380141731053"); t.setAttribute(TestCase.FOO, "374380141731053");
assertThat(t.getContent()).as("UK AMEX").isEqualTo("1053"); assertThat(t.getContent()).as("UK AMEX").isEqualTo("1053");
t.setAttribute(TestCase.FOO, "000000000000001"); t.setAttribute(TestCase.FOO, "000000000000001");
assertThat(t.getContent()).isEmpty(); assertThat(t.getContent()).as("000000000000001").isEmpty();
t.setAttribute(TestCase.FOO, "");
assertThat(t.getContent()).as("").isEmpty();
} }
@Test @Test

View file

@ -35,11 +35,17 @@ class TestRenderUtils {
assertThat(RenderUtils.abbreviate(TestCase.SAMPLE_TEXT, -1, "")).as("max=-1") assertThat(RenderUtils.abbreviate(TestCase.SAMPLE_TEXT, -1, "")).as("max=-1")
.isEqualTo(TestCase.SAMPLE_TEXT); .isEqualTo(TestCase.SAMPLE_TEXT);
assertThat(RenderUtils.abbreviate("", 10, "")).as("").isEmpty();
} }
@Test @Test
void testEncode() { void testEncode() {
var p = new Properties(); var p = new Properties();
p.put(RenderUtils.ENCODING_PROPERTY, "blah");
assertThat(RenderUtils.encode(TestCase.SAMPLE_TEXT, p)).as("invalid encoding").isEqualTo(TestCase.SAMPLE_TEXT);
p.put(RenderUtils.ENCODING_PROPERTY, "json");
assertThat(RenderUtils.encode("This is a \"•test\"", p)).as("json").isEqualTo("This is a \\\"\\u2022test\\\"");
p.put(RenderUtils.ENCODING_PROPERTY, "html"); p.put(RenderUtils.ENCODING_PROPERTY, "html");
assertThat(RenderUtils.encode("<a test &>", p)).as("html").isEqualTo("&lt;a test &amp;&gt;"); assertThat(RenderUtils.encode("<a test &>", p)).as("html").isEqualTo("&lt;a test &amp;&gt;");
p.put(RenderUtils.ENCODING_PROPERTY, "js"); p.put(RenderUtils.ENCODING_PROPERTY, "js");
@ -52,8 +58,22 @@ class TestRenderUtils {
assertThat(RenderUtils.encode("Joe's Café & Bar", p)).as("xml").isEqualTo("Joe&apos;s Café &amp; Bar"); assertThat(RenderUtils.encode("Joe's Café & Bar", p)).as("xml").isEqualTo("Joe&apos;s Café &amp; Bar");
} }
@Test
void testEncodeJs() {
assertThat(RenderUtils.encodeJs("")).isEmpty();
}
@Test
void testFetchUrl() {
var s = "default";
assertThat(RenderUtils.fetchUrl("blah", s)).isEqualTo(s);
assertThat(RenderUtils.fetchUrl("https://www.google.com/404", s)).isEqualTo(s);
assertThat(RenderUtils.fetchUrl("https://www.notreallythere.com/", s)).isEqualTo(s);
}
@Test @Test
void testHtmlEntities() { void testHtmlEntities() {
assertThat(RenderUtils.htmlEntities("")).isEmpty();
assertThat(RenderUtils.htmlEntities(SAMPLE_GERMAN)) assertThat(RenderUtils.htmlEntities(SAMPLE_GERMAN))
.isEqualTo("&#77;&#246;&#99;&#104;&#116;&#101;&#110;&#32;&#83;&#105;&#101;&#32;&#101;&#105;&#110;&#32;&#112;&#97;&#97;&#114;&#32;&#196;&#112;&#102;&#101;&#108;&#63;"); .isEqualTo("&#77;&#246;&#99;&#104;&#116;&#101;&#110;&#32;&#83;&#105;&#101;&#32;&#101;&#105;&#110;&#32;&#112;&#97;&#97;&#114;&#32;&#196;&#112;&#102;&#101;&#108;&#63;");
} }
@ -62,6 +82,8 @@ class TestRenderUtils {
void testMask() { void testMask() {
var foo = "4342256562440179"; var foo = "4342256562440179";
assertThat(RenderUtils.mask("", " ", 2, false)).isEmpty();
assertThat(RenderUtils.mask(foo, "?", 4, false)).as("mask=?") assertThat(RenderUtils.mask(foo, "?", 4, false)).as("mask=?")
.isEqualTo("????????????0179"); .isEqualTo("????????????0179");
@ -74,18 +96,26 @@ class TestRenderUtils {
@Test @Test
void testNormalize() { void testNormalize() {
assertThat(RenderUtils.normalize("")).isEmpty();
assertThat(RenderUtils.normalize(SAMPLE_GERMAN)).isEqualTo("mochten-sie-ein-paar-apfel"); assertThat(RenderUtils.normalize(SAMPLE_GERMAN)).isEqualTo("mochten-sie-ein-paar-apfel");
} }
@Test
void testQrCode() {
assertThat(RenderUtils.qrCode("", "12")).isEmpty();
}
@Test @Test
void testRot13() { void testRot13() {
var encoded = "Zöpugra Fvr rva cnne Äcsry?"; var encoded = "Zöpugra Fvr rva cnne Äcsry?";
assertThat(RenderUtils.rot13("")).isEmpty();
assertThat(RenderUtils.rot13(SAMPLE_GERMAN)).as("encode").isEqualTo(encoded); assertThat(RenderUtils.rot13(SAMPLE_GERMAN)).as("encode").isEqualTo(encoded);
assertThat(RenderUtils.rot13(encoded)).as("decode").isEqualTo(SAMPLE_GERMAN); assertThat(RenderUtils.rot13(encoded)).as("decode").isEqualTo(SAMPLE_GERMAN);
} }
@Test @Test
void testSwapCase() { void testSwapCase() {
assertThat(RenderUtils.swapCase("")).isEmpty();
assertThat(RenderUtils.swapCase(SAMPLE_GERMAN)).isEqualTo("mÖCHTEN sIE EIN PAAR äPFEL?"); assertThat(RenderUtils.swapCase(SAMPLE_GERMAN)).isEqualTo("mÖCHTEN sIE EIN PAAR äPFEL?");
} }