package test.gui.pencil; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import javafx.scene.paint.Color; import net.sf.latexdraw.models.interfaces.shape.BorderPos; import net.sf.latexdraw.models.interfaces.shape.IRectangle; import net.sf.latexdraw.models.interfaces.shape.LineStyle; import net.sf.latexdraw.instruments.Hand; import net.sf.latexdraw.instruments.Pencil; import net.sf.latexdraw.instruments.ShapeBorderCustomiser; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import test.gui.CompositeGUIVoidCommand; import test.gui.ShapePropModule; import test.gui.TestLineStyleGUI; import com.google.inject.AbstractModule; @RunWith(MockitoJUnitRunner.class) public class TestPencilLineStyle extends TestLineStyleGUI { @Override protected AbstractModule createModule() { return new ShapePropModule() { @Override protected void configure() { super.configure(); hand = mock(Hand.class); bind(ShapeBorderCustomiser.class).asEagerSingleton(); bind(Pencil.class).asEagerSingleton(); bind(Hand.class).toInstance(hand); } }; } @Test public void testControllerActivatedWhenGoodPencilUsed() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns, checkInsActivated).execute(); } @Test public void testIncrementFrameArcPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); double val = frameArcField.getValue(); incrementFrameArc.execute(); assertEquals(frameArcField.getValue(), ((IRectangle)pencil.createShapeInstance()).getLineArc(), 0.0001); assertNotEquals(val, frameArcField.getValue(), 0.0001); } @Test public void testIncrementThicknessPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); double val = thicknessField.getValue(); incrementThickness.execute(); assertEquals(thicknessField.getValue(), pencil.createShapeInstance().getThickness(), 0.0001); assertNotEquals(val, thicknessField.getValue(), 0.0001); } @Test public void testSelectBorderPosPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); BorderPos style = bordersPosCB.getSelectionModel().getSelectedItem(); selectBorderPos.execute(); assertEquals(bordersPosCB.getSelectionModel().getSelectedItem(), pencil.createShapeInstance().getBordersPosition()); assertNotEquals(style, bordersPosCB.getSelectionModel().getSelectedItem()); } @Test public void testSelectLineStylePencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); LineStyle style = lineCB.getSelectionModel().getSelectedItem(); selectLineStyle.execute(); assertEquals(lineCB.getSelectionModel().getSelectedItem(), pencil.createShapeInstance().getLineStyle()); assertNotEquals(style, lineCB.getSelectionModel().getSelectedItem()); } @Test public void testPickLineColourPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); Color col = lineColButton.getValue(); pickLineCol.execute(); assertEquals(lineColButton.getValue(), pencil.createShapeInstance().getLineColour().toJFX()); assertNotEquals(col, lineColButton.getValue()); } @Test public void testCheckShowPointPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesBezier, updateIns).execute(); boolean sel = showPoints.isSelected(); checkShowPts.execute(); assertEquals(!sel, pencil.createShapeInstance().isShowPts()); } @Test public void testWidgetsGoodStateWhenNotShowPointPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesRec, updateIns).execute(); assertTrue(thicknessField.isVisible()); assertFalse(thicknessField.isDisabled()); assertTrue(lineColButton.isVisible()); assertFalse(lineColButton.isDisabled()); assertTrue(lineCB.isVisible()); assertFalse(lineCB.isDisabled()); assertTrue(bordersPosCB.isVisible()); assertFalse(bordersPosCB.isDisabled()); assertTrue(frameArcField.isVisible()); assertFalse(frameArcField.isDisabled()); assertFalse(showPoints.isVisible()); } @Test public void testWidgetsGoodStateWhenNotBorderMovableShowPointablePencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesBezier, updateIns).execute(); assertTrue(thicknessField.isVisible()); assertFalse(thicknessField.isDisabled()); assertTrue(lineColButton.isVisible()); assertFalse(lineColButton.isDisabled()); assertTrue(lineCB.isVisible()); assertFalse(lineCB.isDisabled()); assertFalse(bordersPosCB.isVisible()); assertFalse(frameArcField.isDisabled()); assertTrue(showPoints.isVisible()); assertFalse(showPoints.isDisabled()); } @Test public void testWidgetsGoodStateWhenNotFrameArcPencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesCircle, updateIns).execute(); assertTrue(thicknessField.isVisible()); assertFalse(thicknessField.isDisabled()); assertTrue(lineColButton.isVisible()); assertFalse(lineColButton.isDisabled()); assertTrue(lineCB.isVisible()); assertFalse(lineCB.isDisabled()); assertTrue(bordersPosCB.isVisible()); assertFalse(bordersPosCB.isDisabled()); assertFalse(frameArcField.isVisible()); assertFalse(showPoints.isVisible()); } @Test public void testWidgetsGoodStateWhenNotThicknessablePencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesText, updateIns).execute(); assertFalse(thicknessField.isVisible()); assertTrue(lineColButton.isVisible()); assertFalse(lineColButton.isDisabled()); assertFalse(lineCB.isVisible()); assertFalse(bordersPosCB.isVisible()); assertFalse(frameArcField.isVisible()); assertFalse(showPoints.isVisible()); } @Test public void testWidgetsGoodStateWhenNotColourablePencil() { new CompositeGUIVoidCommand(activatePencil, pencilCreatesPic, updateIns).execute(); assertFalse(thicknessField.isVisible()); assertFalse(lineColButton.isVisible()); assertFalse(lineCB.isVisible()); assertFalse(bordersPosCB.isVisible()); assertFalse(frameArcField.isVisible()); assertFalse(showPoints.isVisible()); } }