Author: echatellier Date: 2016-02-16 15:55:13 +0100 (Tue, 16 Feb 2016) New Revision: 1811 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1811 Log: Add failing tests Modified: i18nastparsingtest/src/main/java/org/test/parsing/I18nASTParsingTest.java Modified: i18nastparsingtest/src/main/java/org/test/parsing/I18nASTParsingTest.java =================================================================== --- i18nastparsingtest/src/main/java/org/test/parsing/I18nASTParsingTest.java 2016-02-16 14:37:42 UTC (rev 1810) +++ i18nastparsingtest/src/main/java/org/test/parsing/I18nASTParsingTest.java 2016-02-16 14:55:13 UTC (rev 1811) @@ -33,8 +33,10 @@ import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.function.Consumer; import org.nuiton.i18n.I18n; @@ -66,35 +68,45 @@ */ public static void main(String... args) { - // ca non plus _("ca non plus"); + // ca non + // t("ca non plus"); I18n.init(new ClassPathI18nInitializer(), null); // ca par contre oui - I18n.t("ca par contre oui"); + I18n.t("1 : ca par contre oui"); // ca aussi, multiligne String mastringtellementlonguequecavapasseralaligne = t( - "ca aussi"); + "2 : ca aussi"); + + String testCommentaire = t("3 : ca bug en commentaire in line ?"); // test commentaire + String testCommentaire2 = t( + "4 : ca bug en commentaire in line retour ligne ?"); // test commentaire retour ligne ? // voir ca : c'est plus dur String trans = t("toto" + "tutu"); // ca non - n("et ca aussi"); + n("5 : et ca aussi"); l(Locale.FRENCH, mastringtellementlonguequecavapasseralaligne); + l(Locale.FRENCH, "6 : test en locale"); - // parsing - parseMeJavaParser(); - + // test java 8 List<String> test = new ArrayList<>(); test.removeIf(s -> s.isEmpty()); test.forEach(s -> t(s)); - test.forEach((s) -> t("new string found", s)); - test.forEach(s -> t("new string found 2")); + test.forEach((s) -> t("7 : new string found", s)); + test.forEach(s -> t("8 : new string found 2")); - Consumer<String> translator = s -> t("new string in consumer"); + Consumer<String> translator = s -> t("9 : new string in consumer"); test.forEach(translator); + + // test foireux + System.out.println(t(t("10 : test deux t"))); + + // parsing + parseMeJavaParser(); } protected static void parseMeJavaParser() { @@ -111,13 +123,18 @@ CompilationUnit cu = JavaParser.parse(meAsStream); // visit and print the methods names - new MethodVisitor().visit(cu, null); + MethodVisitor visitor = new MethodVisitor(); + visitor.visit(cu, null); + int count = visitor.i18nString.size(); + + // sysout + System.out.println("Found " + count + " expected 11"); } catch (Exception e) { e.printStackTrace(); // test dans un bloc - t("test dans un bloc"); + t("11 : test dans un bloc"); } } @@ -125,19 +142,35 @@ * Simple visitor implementation for visiting MethodDeclaration nodes. */ static class MethodVisitor extends VoidVisitorAdapter { + + public Set<String> i18nString = new HashSet<>(); + @Override public void visit(MethodCallExpr n, Object arg) { - if (n.getName().matches("[nlt]")) { + if (n.getName().matches("[nt]")) { if (!n.getArgs().isEmpty()) { String firstArgs = n.getArgs().get(0).toString(); if (firstArgs.matches("^\"[^\"]+\"$")) { String key = firstArgs.substring(1).substring(0, firstArgs.length() - 2); System.out.println("Found key : " + key); + i18nString.add(key); } } } + + else if (n.getName().equals("l")) { + if (!n.getArgs().isEmpty()) { + String firstArgs = n.getArgs().get(1).toString(); + if (firstArgs.matches("^\"[^\"]+\"$")) { + String key = firstArgs.substring(1).substring(0, firstArgs.length() - 2); + System.out.println("Found key : " + key); + i18nString.add(key); + } + + } + } } }