package bytecode;

import static org.junit.Assert.*;

import java.io.File;
import java.io.IOException;

import junit.framework.TestCase;

import org.junit.Test;

import plugindevelopment.TypeInsertTester;
import de.dhbwstuttgart.core.MyCompiler;
import de.dhbwstuttgart.core.MyCompilerAPI;
import de.dhbwstuttgart.logger.LoggerConfiguration;
import de.dhbwstuttgart.logger.Section;
import de.dhbwstuttgart.parser.JavaParser.yyException;
import de.dhbwstuttgart.typeinference.ByteCodeResult;
import de.dhbwstuttgart.typeinference.Menge;
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
import de.dhbwstuttgart.typeinference.typedeployment.TypeInsertSet;

public class BoolLitTest {
	
	public final static String rootDirectory = System.getProperty("user.dir")+"/test/bytecode/";
	public final static String testFile = "BoolLit.jav";
	public final static String outputFile = "BoolLit.class";
	
	@Test
	public void test() {
		LoggerConfiguration logConfig = new LoggerConfiguration().setOutput(Section.PARSER, System.out);
		MyCompilerAPI compiler = MyCompiler.getAPI(logConfig);
		try {
			compiler.parse(new File(rootDirectory + testFile));
			compiler.typeReconstruction();
			ByteCodeResult bytecode = compiler.generateBytecode();
			System.out.println(bytecode);
			bytecode.getByteCode().getJavaClass().dump(new File(rootDirectory + outputFile));
		} catch (IOException | yyException e) {
			e.printStackTrace();
			TestCase.fail();
		}
	}

}