package org.robotframework.swing.popup;
import java.awt.Point;
import javax.swing.JPopupMenu;
import jdave.junit4.JDaveRunner;
import org.jmock.Expectations;
import org.junit.runner.RunWith;
import org.netbeans.jemmy.operators.ComponentOperator;
import org.netbeans.jemmy.operators.JPopupMenuOperator;
import org.robotframework.jdave.mock.MockSupportSpecification;
@RunWith(JDaveRunner.class)
public class PopupMenuOperatorFactorySpec extends MockSupportSpecification<PopupMenuOperatorFactory> {
public class CreatingFromPopupMenu {
private JPopupMenuOperator popupMenuOperator;
public PopupMenuOperatorFactory create() {
popupMenuOperator = mock(JPopupMenuOperator.class);
PopupMenuOperatorFactory popupMenuOperatorFactory = new PopupMenuOperatorFactory() {
JPopupMenuOperator wrapWithOperator(JPopupMenu popupMenu) {
return popupMenuOperator;
}
};
return popupMenuOperatorFactory;
}
public void createsPopupOperator() {
checking(new Expectations() {{
one(popupMenuOperator).grabFocus();
}});
specify(context.createPopupOperator(dummy(JPopupMenu.class)), popupMenuOperator);
}
}
public class CreatingFromComponentOperator {
private JPopupMenuOperator popupMenuOperator;
private ComponentOperator popupTarget;
private JPopupMenu popupMenu = dummy(JPopupMenu.class);
public PopupMenuOperatorFactory create() {
popupTarget = mock(ComponentOperator.class);
popupMenuOperator = mock(JPopupMenuOperator.class);
PopupMenuOperatorFactory popupMenuOperatorFactory = new PopupMenuOperatorFactory() {
public JPopupMenuOperator createPopupOperator(JPopupMenu popupMenu) {
return popupMenuOperator;
}
};
final PopupCaller popupCaller = injectMockTo(popupMenuOperatorFactory, PopupCaller.class);
checking(new Expectations() {{
one(popupCaller).callPopupOnComponent(popupTarget, new Point(1, 2)); will(returnValue(popupMenu));
one(popupTarget).getCenterX(); will(returnValue(1));
one(popupTarget).getCenterY(); will(returnValue(2));
allowing(popupTarget);
}});
return popupMenuOperatorFactory;
}
public void createsPopupOperator() {
specify(context.createPopupOperator(popupTarget), popupMenuOperator);
}
}
}