package org.dresdenocl.debug.test.unit;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import org.dresdenocl.debug.OclDebugger;
import org.dresdenocl.debug.test.AbstractDebuggerTest;
import org.dresdenocl.debug.test.DebugTestPlugin;
import org.junit.BeforeClass;
import org.junit.Test;
public class DebuggerUnitTest extends AbstractDebuggerTest {
@BeforeClass
public static void setUp() throws Exception {
AbstractDebuggerTest.setUp();
}
@Test
public void testStartUp01() throws Exception {
OclDebugger debugger = generateDebugger(RESOURCE01_PATH);
waitForEvent(DebugEvent.STARTED);
waitForEvent(DebugEvent.SUSPENDED);
assertTrue("Debugger is not in debug mode", debugger.isDebugMode());
assertTrue("Debugger is not suspended", debugger.isSuspended());
debugStepAndWaitFor(DebugStep.RESUME, DebugEvent.RESUMED, debugger);
assertFalse("Debugger is suspended but should be not",
debugger.isSuspended());
}
@Test
public void testBreakpointSet01() throws Exception {
OclDebugger debugger = generateDebugger(RESOURCE01_PATH);
File resourceFile = getFile(MODEL_INSTANCE_PATH, DebugTestPlugin.PLUGIN_ID);
debugger.addLineBreakPoint(resourceFile.getAbsolutePath(), 3);
Thread.sleep(2000);
debugger.resume();
Thread.sleep(1000);
assertTrue("Debugger is not in the right line",
debugger.getCurrentLine() == 3);
}
}