// Path: src/main/java/BlueTurtle/gui/GUIController.java
// public class GUIController {
// 
// 
// 	/**
// 	 * Enums to represent the ASATs.
// 	 * 
// 	 * @author BlueTurtle.
// 	 *
// 	 */
// 	public enum ASAT { CheckStyle, PMD, FindBugs; }
// 
// 	@FXML // ResourceBundle that was given to the FXMLLoader
// 	private ResourceBundle resources; //NOPMD - needed for the FXMLLoader.
// 
// 	@FXML // URL location of the FXML file that was given to the FXMLLoader
// 	private URL location; //NOPMD - needed for the FXMLLoader.
// 
// 	@FXML // fx:id="selectButton"
// 	private Button selectButton; // Value injected by FXMLLoader
// 
// 	@FXML // fx:id="projectSourcePathText"
// 	private Text projectSourcePathText; // Value injected by FXMLLoader
// 
// 	@FXML // fx:id="visualizeButton"
// 	private Button visualizeButton; // Value injected by FXMLLoader
// 	
// 	@Getter @Setter private static String projectPath; //NOPMD - warning caused by lombok.
// 	
// 	/**
// 	 * Event for CheckStyle button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectCheckStyleConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Event for PMD button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectPMDConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Event for FindBugs button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectFindBugsConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Events for the LoadButton.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectButtonEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Events from the VisualizeButton.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void visualizeButtonEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Initialize the buttons.
// 	 */
// 	@FXML
// 	void initialize() {
// 		assert visualizeButton != null : "fx:id=\"visualizeButton\" was not injected: check your FXML file 'Menu.fxml'.";
// 		assert projectSourcePathText != null : "fx:id=\"projectSourcePathText\" was not injected: check your FXML file 'Menu.fxml'.";
// 		assert selectButton != null : "fx:id=\"selectButton\" was not injected: check your FXML file 'Menu.fxml'.";
// 
// 		// Set the event handlers for the buttons.
// 		selectButton.setOnMouseClicked(new SelectButtonEventHandler(projectSourcePathText, visualizeButton));
// 		visualizeButton.setOnMouseClicked(new VisualizeButtonEventHandler());
// 	}
// 	
// }
// 
// Path: src/main/java/BlueTurtle/gui/GUIController.java
// public enum ASAT { CheckStyle, PMD, FindBugs; }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import BlueTurtle.finders.ProjectInfoFinder;
import BlueTurtle.gui.GUIController;
import BlueTurtle.gui.GUIController.ASAT;

	/**
	 * Test execute should produce an output file.
	 * 
	 * @throws IOException
	 *             throws an exception if a problem is encountered while reading
	 *             the file.
	 */
	@Test
	public void testExecute() throws IOException {
		JavaController.setASATOutputFiles(ASAT.CheckStyle, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.PMD, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.FindBugs, new ArrayList<String>());
		JavaController jc = new JavaController();
		jc.execute();
		assertTrue(new File(userDir + "/visualization/JSON/outputWarningsJSON.js").exists());
	}

	/**
	 * Tests if the JSONFormatter generates an empty list of warnings when it
	 * finds no output files.
	 * 
	 * @throws IOException
	 *             throws an exception if a problem is encountered while reading
	 *             the file.
	 */
	@Test
	public void testNoOutputFile() throws IOException {
		JavaController.setASATOutputFiles(ASAT.CheckStyle, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.PMD, new ArrayList<String>());
// Path: src/main/java/BlueTurtle/gui/GUIController.java
// public class GUIController {
// 
// 
// 	/**
// 	 * Enums to represent the ASATs.
// 	 * 
// 	 * @author BlueTurtle.
// 	 *
// 	 */
// 	public enum ASAT { CheckStyle, PMD, FindBugs; }
// 
// 	@FXML // ResourceBundle that was given to the FXMLLoader
// 	private ResourceBundle resources; //NOPMD - needed for the FXMLLoader.
// 
// 	@FXML // URL location of the FXML file that was given to the FXMLLoader
// 	private URL location; //NOPMD - needed for the FXMLLoader.
// 
// 	@FXML // fx:id="selectButton"
// 	private Button selectButton; // Value injected by FXMLLoader
// 
// 	@FXML // fx:id="projectSourcePathText"
// 	private Text projectSourcePathText; // Value injected by FXMLLoader
// 
// 	@FXML // fx:id="visualizeButton"
// 	private Button visualizeButton; // Value injected by FXMLLoader
// 	
// 	@Getter @Setter private static String projectPath; //NOPMD - warning caused by lombok.
// 	
// 	/**
// 	 * Event for CheckStyle button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectCheckStyleConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Event for PMD button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectPMDConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Event for FindBugs button.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectFindBugsConfigEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Events for the LoadButton.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void selectButtonEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Events from the VisualizeButton.
// 	 * 
// 	 * @param event
// 	 *            the event.
// 	 */
// 	@FXML
// 	void visualizeButtonEvent(MouseEvent event) { }
// 
// 	/**
// 	 * Initialize the buttons.
// 	 */
// 	@FXML
// 	void initialize() {
// 		assert visualizeButton != null : "fx:id=\"visualizeButton\" was not injected: check your FXML file 'Menu.fxml'.";
// 		assert projectSourcePathText != null : "fx:id=\"projectSourcePathText\" was not injected: check your FXML file 'Menu.fxml'.";
// 		assert selectButton != null : "fx:id=\"selectButton\" was not injected: check your FXML file 'Menu.fxml'.";
// 
// 		// Set the event handlers for the buttons.
// 		selectButton.setOnMouseClicked(new SelectButtonEventHandler(projectSourcePathText, visualizeButton));
// 		visualizeButton.setOnMouseClicked(new VisualizeButtonEventHandler());
// 	}
// 	
// }
// 
// Path: src/main/java/BlueTurtle/gui/GUIController.java
// public enum ASAT { CheckStyle, PMD, FindBugs; }


// Path: src/test/java/BlueTurtle/uav/JavaControllerTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import BlueTurtle.finders.ProjectInfoFinder;
import BlueTurtle.gui.GUIController;
import BlueTurtle.gui.GUIController.ASAT;


	/**
	 * Test execute should produce an output file.
	 * 
	 * @throws IOException
	 *             throws an exception if a problem is encountered while reading
	 *             the file.
	 */
	@Test
	public void testExecute() throws IOException {
		JavaController.setASATOutputFiles(ASAT.CheckStyle, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.PMD, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.FindBugs, new ArrayList<String>());
		JavaController jc = new JavaController();
		jc.execute();
		assertTrue(new File(userDir + "/visualization/JSON/outputWarningsJSON.js").exists());
	}

	/**
	 * Tests if the JSONFormatter generates an empty list of warnings when it
	 * finds no output files.
	 * 
	 * @throws IOException
	 *             throws an exception if a problem is encountered while reading
	 *             the file.
	 */
	@Test
	public void testNoOutputFile() throws IOException {
		JavaController.setASATOutputFiles(ASAT.CheckStyle, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.PMD, new ArrayList<String>());
		JavaController.setASATOutputFiles(ASAT.FindBugs, new ArrayList<String>());