package com.windowtester.runtime.gef.internal;
import static com.windowtester.runtime.gef.test.builder.FigureBuilder.addChild;
import static com.windowtester.runtime.gef.test.builder.FigureBuilder.builder;
import static com.windowtester.runtime.gef.test.builder.FigureBuilder.figure;
import junit.framework.TestCase;
import org.eclipse.draw2d.IFigure;
import com.windowtester.runtime.gef.test.TestableFigureInfoState;
import com.windowtester.runtime.gef.test.TestableFigureInfoState.ITestableFigureInfoState;
/**
* The class <code>FigureInfoStateTest</code> contains tests for the class
* {@link <code>FigureInfoState</code>}
* <p>
* @author Phil Quitslund
*/
public class FigureInfoStateTest extends TestCase {
public void testInitInvariantsChecked1() {
try {
new TestableFigureInfoState.Eager(figure(), null);
fail("invariant untested");
} catch (IllegalArgumentException e) {
//pass
}
}
public void testInitInvariantsChecked2() {
try {
new TestableFigureInfoState.Eager(null, builder());
fail("invariant untested");
} catch (IllegalArgumentException e) {
//pass
}
}
public void testLazyIsNotEager() {
IFigure f1 = figure();
IFigure f2 = figure();
addChild(f1, f2);
ITestableFigureInfoState state = new TestableFigureInfoState.Lazy(f1, builder());
assertNull(state.accessConnections());
assertNull(state.accessChildren());
assertNull(state.accessPart());
assertNull(new TestableFigureInfoState.Lazy(f2, builder()).accessParent());
}
public void testEagerIsNotLazy() {
IFigure f1 = figure();
IFigure f2 = figure();
addChild(f1, f2);
ITestableFigureInfoState state = new TestableFigureInfoState.Eager(f1, builder());
assertNotNull(state.accessConnections());
assertNotNull(state.accessChildren());
assertNotNull(state.accessPart());
assertNotNull(new TestableFigureInfoState.Lazy(f2, builder()).accessParent());
}
}