TestLogger.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package me.hammerle.snuviscript.test;
  2. import java.io.File;
  3. import java.nio.file.Files;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import me.hammerle.snuviscript.code.ISnuviLogger;
  7. import me.hammerle.snuviscript.code.Script;
  8. public class TestLogger implements ISnuviLogger
  9. {
  10. private final ArrayList<String> list = new ArrayList<>();
  11. @Override
  12. public void print(String message, Exception ex, String function, String scriptname, Script sc, int line)
  13. {
  14. if(ex == null)
  15. {
  16. list.add(message);
  17. }
  18. else
  19. {
  20. System.out.println(ex);
  21. System.out.println(ex.getMessage());
  22. System.out.println("error line " + line);
  23. }
  24. }
  25. public void reset()
  26. {
  27. list.clear();
  28. }
  29. public void printAll()
  30. {
  31. list.stream().forEach(s -> System.out.println(s));
  32. list.clear();
  33. }
  34. public boolean check(File f)
  35. {
  36. if(!f.exists())
  37. {
  38. System.out.println(String.format("\"%s\" does not exist", f.getPath()));
  39. return false;
  40. }
  41. try
  42. {
  43. List<String> file = Files.readAllLines(f.toPath());
  44. if(file.size() != list.size())
  45. {
  46. printNoMatch(f, file);
  47. return false;
  48. }
  49. for(int i = 0; i < file.size(); i++)
  50. {
  51. if(!file.get(i).equals(list.get(i)))
  52. {
  53. printNoMatch(f, file);
  54. return false;
  55. }
  56. }
  57. }
  58. catch(Exception ex)
  59. {
  60. ex.printStackTrace();
  61. return false;
  62. }
  63. return true;
  64. }
  65. private void printNoMatch(File f, List<String> file)
  66. {
  67. System.out.println(String.format("error checking %s ", f.getPath()));
  68. System.out.println("Expected ----------------------------------------");
  69. file.forEach(s -> System.out.println(s));
  70. System.out.println("Actual ------------------------------------------");
  71. list.forEach(s -> System.out.println(s));
  72. System.out.println("-------------------------------------------------");
  73. }
  74. }