MinimalModelInstanceTest.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package de.jplag.emf.model;
  2. import static java.util.stream.Collectors.toList;
  3. import static org.junit.jupiter.api.Assertions.assertEquals;
  4. import static org.junit.jupiter.api.Assertions.assertNotEquals;
  5. import java.io.File;
  6. import java.nio.file.Path;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.List;
  10. import org.junit.jupiter.api.AfterEach;
  11. import org.junit.jupiter.api.BeforeEach;
  12. import org.junit.jupiter.api.Test;
  13. import org.slf4j.Logger;
  14. import org.slf4j.LoggerFactory;
  15. import de.jplag.TokenList;
  16. import de.jplag.TokenPrinter;
  17. import de.jplag.emf.dynamic.DynamicMetamodelTokenConstants;
  18. import de.jplag.testutils.FileUtil;
  19. import de.jplag.testutils.TestErrorConsumer;
  20. class MinimalModelInstanceTest {
  21. private final Logger logger = LoggerFactory.getLogger("JPlag-Test");
  22. private static final Path BASE_PATH = Path.of("src", "test", "resources", "de", "jplag", "books");
  23. private static final String[] TEST_SUBJECTS = {"bookStore.ecore", "bookStore.xml", "bookStore2.xml"};
  24. private Language frontend;
  25. private File baseDirectory;
  26. @BeforeEach
  27. public void setUp() {
  28. TestErrorConsumer consumer = new TestErrorConsumer();
  29. frontend = new Language(consumer);
  30. baseDirectory = BASE_PATH.toFile();
  31. FileUtil.assertDirectory(baseDirectory, TEST_SUBJECTS);
  32. }
  33. @Test
  34. void testBookStoreInstances() {
  35. File baseFile = new File(BASE_PATH.toString());
  36. var sortedFiles = frontend.customizeSubmissionOrder(new ArrayList<>(Arrays.stream(baseFile.listFiles()).toList()));
  37. var testSubjects = sortedFiles.stream().map(File::getName).filter(it -> !it.endsWith(Language.VIEW_FILE_SUFFIX)).toArray(String[]::new);
  38. TokenList result = frontend.parse(baseDirectory, testSubjects);
  39. assertNotEquals(0, result.size());
  40. List<String> treeViewFiles = Arrays.stream(testSubjects).map(it -> it + Language.VIEW_FILE_SUFFIX).collect(toList());
  41. logger.info(TokenPrinter.printTokens(result, baseDirectory, treeViewFiles));
  42. logger.info("Dynamic token set: " + DynamicMetamodelTokenConstants.getTokenStrings());
  43. logger.info("Parsed tokens: " + result.allTokens().toString());
  44. assertEquals(7, result.size());
  45. }
  46. @AfterEach
  47. public void tearDown() {
  48. FileUtil.clearFiles(new File(BASE_PATH.toString()), Language.VIEW_FILE_SUFFIX);
  49. }
  50. }