MinimalCSharpFrontendTest.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package de.jplag.csharp;
  2. import static de.jplag.csharp.CSharpTokenConstants.*;
  3. import static java.util.stream.Collectors.toList;
  4. import static org.junit.jupiter.api.Assertions.assertEquals;
  5. import static org.junit.jupiter.api.Assertions.assertTrue;
  6. import java.io.File;
  7. import java.nio.file.Path;
  8. import java.util.List;
  9. import org.junit.jupiter.api.BeforeEach;
  10. import org.junit.jupiter.api.Test;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import de.jplag.Token;
  14. import de.jplag.TokenConstants;
  15. import de.jplag.TokenList;
  16. import de.jplag.TokenPrinter;
  17. class MinimalCSharpFrontendTest {
  18. private final Logger logger = LoggerFactory.getLogger("JPlag-Test");
  19. private static final Path BASE_PATH = Path.of("src", "test", "resources", "de", "jplag", "csharp");
  20. private static final String TEST_SUBJECT = "TestClass.cs";
  21. private de.jplag.Language frontend;
  22. private File baseDirectory;
  23. @BeforeEach
  24. public void setUp() {
  25. frontend = new Language();
  26. baseDirectory = BASE_PATH.toFile();
  27. assertTrue(baseDirectory.exists(), "Could not find base directory!");
  28. }
  29. @Test
  30. void testParsingTestClass() {
  31. List<Integer> expectedToken = List.of(CLASS, CLASS_BEGIN, FIELD, CONSTRUCTOR, LOCAL_VARIABLE, METHOD, METHOD_BEGIN, IF, IF_BEGIN, INVOCATION,
  32. IF_END, IF_BEGIN, INVOCATION, IF_END, METHOD_END, PROPERTY, ACCESSORS_BEGIN, ACCESSOR_BEGIN, ACCESSOR_END, ACCESSOR_BEGIN,
  33. ACCESSOR_END, ACCESSORS_END, FIELD, PROPERTY, ACCESSORS_BEGIN, ACCESSOR_BEGIN, RETURN, ACCESSOR_END, ACCESSOR_BEGIN, ASSIGNMENT,
  34. ACCESSOR_END, ACCESSORS_END, CLASS_END, TokenConstants.FILE_END);
  35. // Parse test input
  36. String[] input = new String[] {TEST_SUBJECT};
  37. TokenList result = frontend.parse(baseDirectory, input);
  38. logger.info(TokenPrinter.printTokens(result, baseDirectory));
  39. // Compare parsed tokens:
  40. assertEquals(expectedToken.size(), result.size());
  41. List<Integer> actualToken = result.allTokens().stream().map(Token::getType).collect(toList());
  42. assertEquals(expectedToken, actualToken);
  43. }
  44. }