package plugindevelopment; import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Vector; import org.junit.Test; import junit.framework.TestCase; import mycompiler.MyCompiler; import mycompiler.MyCompilerAPI; import mycompiler.myparser.JavaParser.yyException; import mycompiler.mytypereconstruction.TypeinferenceResultSet; import typinferenz.typedeployment.TypeInsertPoint; import typinferenz.typedeployment.TypeInsertSet; public class InsertSingleTypeTest { private static final String testFile = "SingleTypeInsertTest.jav"; @Test public void test1(){ TypeinferenceResultSet res = test(testFile); TypeInsertPoint p = res.getTypeInsertionPoints().points.firstElement(); try { System.out.println(res.getTypeInsertionPoints().insertType(p, this.getFileContent(rootDirectory + testFile))); } catch (IOException e) { TestCase.fail(); e.printStackTrace(); } } static final String rootDirectory = System.getProperty("user.dir")+"/test/plugindevelopment/"; public static TypeinferenceResultSet test(String sourceFileToInfere){ String inferedSource = ""; MyCompilerAPI compiler = MyCompiler.getAPI(); try { compiler.parse(new File(rootDirectory + sourceFileToInfere)); Vector results = compiler.typeReconstruction(); TestCase.assertTrue("Es darf nicht mehr als eine Lösungsmöglichkeit geben und nicht "+results.size(), results.size()==1); return results.firstElement(); } catch (IOException | yyException e) { e.printStackTrace(); TestCase.fail(); return null; } } //Source: https://stackoverflow.com/questions/326390/how-to-create-a-java-string-from-the-contents-of-a-file //PS: benötigt Java 7 public static String getFileContent(String path)throws IOException { byte[] encoded = Files.readAllBytes(Paths.get(path)); return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(encoded)).toString(); } }