TestLogger.java 2.2 KB

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