package org.jactr.tools.tracer.sinks.trace.internal; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.File; import java.io.IOException; import org.jactr.tools.tracer.transformer.ITransformedEvent; import org.jmock.Expectations; import org.jmock.integration.junit4.JUnitRuleMockery; import org.junit.Rule; import org.junit.Test; public class TraceFileManagerTest { @Rule public JUnitRuleMockery context = new JUnitRuleMockery(); @Test public void mustNotThrowExceptionIfFlushIsCalledBeforeNewRecord() throws IOException { ITransformedEvent event = context.mock(ITransformedEvent.class); Expectations expectations = new Expectations() {{ allowing(event).getSimulationTime(); will(returnValue(0.0d)); }}; context.checking(expectations); File outputDirectory = File.createTempFile("output", "dir"); try { TraceFileManager manager = new TraceFileManager(outputDirectory); manager.flush(); manager.record(event); assertTrue(true); } catch (Exception ex) { fail("Unexpected exception: "+ex.getClass().getName() +": "+ex.getMessage()); } finally { outputDirectory.delete(); } } }