TestLogger.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 boolean check(File f)
  30. {
  31. if(!f.exists())
  32. {
  33. System.out.println(String.format("\"%s\" does not exist", f.getPath()));
  34. return false;
  35. }
  36. try
  37. {
  38. List<String> file = Files.readAllLines(f.toPath());
  39. if(file.size() != list.size())
  40. {
  41. printNoMatch(f, file);
  42. return false;
  43. }
  44. for(int i = 0; i < file.size(); i++)
  45. {
  46. if(!file.get(i).equals(list.get(i)))
  47. {
  48. printNoMatch(f, file);
  49. return false;
  50. }
  51. }
  52. }
  53. catch(Exception ex)
  54. {
  55. ex.printStackTrace();
  56. return false;
  57. }
  58. return true;
  59. }
  60. private void printNoMatch(File f, List<String> file)
  61. {
  62. System.out.println(String.format("error checking %s ", f.getPath()));
  63. System.out.println("Expected ----------------------------------------");
  64. file.forEach(s -> System.out.println(s));
  65. System.out.println("Actual ------------------------------------------");
  66. list.forEach(s -> System.out.println(s));
  67. System.out.println("-------------------------------------------------");
  68. }
  69. }