package betsy.common.timeouts; import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import betsy.common.tasks.FileTasks; import betsy.common.timeouts.calibration.CalibrationTimeout; import betsy.common.timeouts.timeout.Timeout; import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.Logger; import org.apache.log4j.spi.LoggingEvent; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; /** * @author Christoph Broeker * @version 1.0 */ public class CSVTest { private Timeout timeout; private Path csv; private Path properties; private TestAppender testAppender; private static final Logger LOGGER = Logger.getLogger(CSV.class); @BeforeClass public static void setUpClass() { String transitionFolder = "transition_folder"; FileTasks.mkdirs(Paths.get(transitionFolder)); File csv = new File("calibration_timeouts.csv"); if (csv.exists()) { FileTasks.copyFileIntoFolder(csv.toPath(), Paths.get(transitionFolder)); FileTasks.deleteFile(csv.toPath()); } } @AfterClass public static void tearDownClass() { File csv = new File("calibration_timeouts.csv"); FileTasks.deleteFile(csv.toPath()); String transitionFolder = "transition_folder"; Path currentRelativePath = Paths.get(""); FileTasks.copyFilesInFolderIntoOtherFolder(Paths.get(transitionFolder), currentRelativePath); FileTasks.deleteDirectory(Paths.get(transitionFolder)); } @Before public void setUp() throws Exception { timeout = new Timeout("ode", "deploy", 20000, 2000); properties = Paths.get("timeouts.properties"); csv = Paths.get("calibration_timeouts.csv"); testAppender = new TestAppender(); LOGGER.addAppender(testAppender); } @After public void tearDown() throws Exception { timeout = null; Files.deleteIfExists(properties); Files.deleteIfExists(csv); properties = null; csv = null; LOGGER.removeAllAppenders(); testAppender = null; } @Test public void testWriteToCSV() throws Exception { ArrayList<CalibrationTimeout> calibrationTimeouts = new ArrayList<>(); calibrationTimeouts.add(new CalibrationTimeout(timeout)); CSV.write(csv, calibrationTimeouts); } @Test public void testWriteToCSVDoesNotExits() throws Exception { FileTasks.deleteFile(csv); ArrayList<CalibrationTimeout> calibrationTimeouts = new ArrayList<>(); calibrationTimeouts.add(new CalibrationTimeout(timeout)); CSV.write(csv, calibrationTimeouts); } class TestAppender extends AppenderSkeleton { public List<String> messages = new ArrayList<>(); @Override protected void append(LoggingEvent event) { messages.add(event.getMessage().toString()); } @Override public void close() { messages = null; } @Override public boolean requiresLayout() { return false; } } }