// Path: core/src/main/java/me/gregorias/dfuntest/util/FileUtils.java
// public interface FileUtils {
//   /**
//    * {@link org.apache.commons.io.FileUtils#copyDirectoryToDirectory(java.io.File, java.io.File)}
//    *
//    * @param from Source path
//    * @param to Target directory path
//    */
//   void copyDirectoryToDirectory(File from, File to) throws IOException;
// 
//   /**
//    * {@link org.apache.commons.io.FileUtils#copyFileToDirectory(java.io.File, java.io.File)}
//    *
//    * @param from Source path
//    * @param to Target directory path
//    */
//   void copyFileToDirectory(File from, File to) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#createDirectories(java.nio.file.Path,
//    *   java.nio.file.attribute.FileAttribute[])}
//    *
//    * @param path Path to create
//    */
//   void createDirectories(Path path) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#createTempDirectory(
//    * String, java.nio.file.attribute.FileAttribute[])}
//    *
//    * @param dirPrefix prefix of temporary directory
//    * @return Path to created directory
//    */
//   Path createTempDirectory(String dirPrefix) throws IOException;
// 
//   /**
//    * {@link org.apache.commons.io.FileUtils#deleteQuietly(java.io.File)}
//    *
//    * @param file File to delete
//    * @return true iff directory was deleted
//    */
//   boolean deleteQuietly(File file);
// 
//   /**
//    * {@link java.nio.file.Files#exists(java.nio.file.Path, java.nio.file.LinkOption...)}
//    *
//    * @param path path to check
//    * @return true iff exists
//    */
//   boolean exists(Path path);
// 
//   /**
//    * {@link java.nio.file.Files#isDirectory(java.nio.file.Path, java.nio.file.LinkOption...)}
//    *
//    * @param path path to check
//    * @return true iff path is a directory
//    */
//   boolean isDirectory(Path path);
// 
//   /**
//    * {@link java.lang.ProcessBuilder}
//    *
//    * @param command command to run
//    * @param pwdFile working directory of the process
//    * @return process running the command
//    */
//   Process runCommand(List<String> command, File pwdFile) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#write(java.nio.file.Path, Iterable, java.nio.charset.Charset,
//    * java.nio.file.OpenOption...)}
//    *
//    * @param path Path of file to write to.
//    * @param content String to be written to file.
//    */
//   void write(Path path, String content) throws IOException;
// }


import me.gregorias.dfuntest.util.FileUtils;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyCollection;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
package me.gregorias.dfuntest;




@SuppressWarnings("unchecked")
public class MultiTestRunnerTest {
  private MultiTestRunner<Environment, App<Environment>> mMultiTestRunner = null;

  private final TestScript<App<Environment>> mMockTestScript = mock(TestScript.class);
  private final EnvironmentFactory<Environment> mMockEnvironmentFactory =
      mock(EnvironmentFactory.class);
  private final EnvironmentPreparator<Environment> mMockEnvironmentPreparator =
      mock(EnvironmentPreparator.class);
  private final ApplicationFactory<Environment, App<Environment>> mMockApplicationFactory =
      mock(ApplicationFactory.class);

  private final Path mReportPath = FileSystems.getDefault().getPath("reportDir");
// Path: core/src/main/java/me/gregorias/dfuntest/util/FileUtils.java
// public interface FileUtils {
//   /**
//    * {@link org.apache.commons.io.FileUtils#copyDirectoryToDirectory(java.io.File, java.io.File)}
//    *
//    * @param from Source path
//    * @param to Target directory path
//    */
//   void copyDirectoryToDirectory(File from, File to) throws IOException;
// 
//   /**
//    * {@link org.apache.commons.io.FileUtils#copyFileToDirectory(java.io.File, java.io.File)}
//    *
//    * @param from Source path
//    * @param to Target directory path
//    */
//   void copyFileToDirectory(File from, File to) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#createDirectories(java.nio.file.Path,
//    *   java.nio.file.attribute.FileAttribute[])}
//    *
//    * @param path Path to create
//    */
//   void createDirectories(Path path) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#createTempDirectory(
//    * String, java.nio.file.attribute.FileAttribute[])}
//    *
//    * @param dirPrefix prefix of temporary directory
//    * @return Path to created directory
//    */
//   Path createTempDirectory(String dirPrefix) throws IOException;
// 
//   /**
//    * {@link org.apache.commons.io.FileUtils#deleteQuietly(java.io.File)}
//    *
//    * @param file File to delete
//    * @return true iff directory was deleted
//    */
//   boolean deleteQuietly(File file);
// 
//   /**
//    * {@link java.nio.file.Files#exists(java.nio.file.Path, java.nio.file.LinkOption...)}
//    *
//    * @param path path to check
//    * @return true iff exists
//    */
//   boolean exists(Path path);
// 
//   /**
//    * {@link java.nio.file.Files#isDirectory(java.nio.file.Path, java.nio.file.LinkOption...)}
//    *
//    * @param path path to check
//    * @return true iff path is a directory
//    */
//   boolean isDirectory(Path path);
// 
//   /**
//    * {@link java.lang.ProcessBuilder}
//    *
//    * @param command command to run
//    * @param pwdFile working directory of the process
//    * @return process running the command
//    */
//   Process runCommand(List<String> command, File pwdFile) throws IOException;
// 
//   /**
//    * {@link java.nio.file.Files#write(java.nio.file.Path, Iterable, java.nio.charset.Charset,
//    * java.nio.file.OpenOption...)}
//    *
//    * @param path Path of file to write to.
//    * @param content String to be written to file.
//    */
//   void write(Path path, String content) throws IOException;
// }


// Path: core/src/test/java/me/gregorias/dfuntest/MultiTestRunnerTest.java
import me.gregorias.dfuntest.util.FileUtils;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyCollection;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

package me.gregorias.dfuntest;




@SuppressWarnings("unchecked")
public class MultiTestRunnerTest {
  private MultiTestRunner<Environment, App<Environment>> mMultiTestRunner = null;

  private final TestScript<App<Environment>> mMockTestScript = mock(TestScript.class);
  private final EnvironmentFactory<Environment> mMockEnvironmentFactory =
      mock(EnvironmentFactory.class);
  private final EnvironmentPreparator<Environment> mMockEnvironmentPreparator =
      mock(EnvironmentPreparator.class);
  private final ApplicationFactory<Environment, App<Environment>> mMockApplicationFactory =
      mock(ApplicationFactory.class);

  private final Path mReportPath = FileSystems.getDefault().getPath("reportDir");
  private final FileUtils mMockFileUtils = mock(FileUtils.class);