X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest%2FStringUtilsTest.java;h=4be75040b9966106beb932b825f60d2e53a8adeb;hb=771c4ba4a1c17a95acbfdcbdb489094b04947713;hp=274e5e881bf7bcf676bdbabda8ff6abe0b6f7e14;hpb=cc3e72914add9c950f563bf37c6615e8721ad32e;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/test/StringUtilsTest.java b/src/be/nikiroo/utils/test/StringUtilsTest.java index 274e5e8..4be7504 100644 --- a/src/be/nikiroo/utils/test/StringUtilsTest.java +++ b/src/be/nikiroo/utils/test/StringUtilsTest.java @@ -1,7 +1,9 @@ package be.nikiroo.utils.test; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -141,11 +143,59 @@ class StringUtilsTest extends TestLauncher { addTest(new TestCase("Justifying") { @Override public void test() throws Exception { - for (String data : new String[] {}) { - // TODO: test it! - // String result = StringUtils.justifyText(data, 5, - // StringUtils.Alignment.LEFT); + Map>>> source = new HashMap>>>(); + addValue(source, Alignment.LEFT, "testy", 5, "testy"); + addValue(source, Alignment.LEFT, "testy", 3, "te-", "sty"); + addValue(source, Alignment.LEFT, + "Un petit texte qui se mettra sur plusieurs lignes", + 10, "Un petit", "texte qui", "se mettra", "sur", + "plusieurs", "lignes"); + addValue(source, Alignment.LEFT, + "Un petit texte qui se mettra sur plusieurs lignes", 7, + "Un", "petit", "texte", "qui se", "mettra", "sur", + "plusie-", "urs", "lignes"); + addValue(source, Alignment.RIGHT, + "Un petit texte qui se mettra sur plusieurs lignes", 7, + " Un", " petit", " texte", " qui se", " mettra", + " sur", "plusie-", " urs", " lignes"); + addValue(source, Alignment.CENTER, + "Un petit texte qui se mettra sur plusieurs lignes", 7, + " Un ", " petit ", " texte ", "qui se ", "mettra ", + " sur ", "plusie-", " urs ", "lignes "); + addValue(source, Alignment.JUSTIFY, + "Un petit texte qui se mettra sur plusieurs lignes", 7, + "Un", "petit", "texte", "qui se", "mettra", "sur", + "plusie-", "urs", "lignes"); + addValue(source, Alignment.JUSTIFY, + "Un petit texte qui se mettra sur plusieurs lignes", + 14, "Un petit", "texte qui se", + "mettra sur", "plusieurs lig-", "nes"); + + System.out.println(); + for (String data : source.keySet()) { + for (int size : source.get(data).keySet()) { + Alignment align = source.get(data).get(size).getKey(); + List values = source.get(data).get(size) + .getValue(); + + List result = StringUtils.justifyText(data, + size, align); + + System.out.println("[" + data + " (" + size + ")" + + "] -> ["); + for (int i = 0; i < result.size(); i++) { + String resultLine = result.get(i); + System.out.println(i + ": " + resultLine); + } + System.out.println("]"); + + for (int i = 0; i < result.size() && i < values.size(); i++) { + assertEquals("The line " + i + " is not correct", + values.get(i), result.get(i)); + } + } } + System.out.println(); } }); @@ -178,4 +228,31 @@ class StringUtilsTest extends TestLauncher { } }); } + + static private void addValue( + Map>>> source, + final Alignment align, String input, int size, + final String... result) { + if (!source.containsKey(input)) { + source.put(input, + new HashMap>>()); + } + + source.get(input).put(size, new Entry>() { + @Override + public Alignment getKey() { + return align; + } + + @Override + public List getValue() { + return Arrays.asList(result); + } + + @Override + public List setValue(List value) { + return null; + } + }); + } }