package pipe.views; import org.junit.Before; import org.junit.Test; import uk.ac.imperial.pipe.models.petrinet.ArcPoint; import uk.ac.imperial.pipe.models.petrinet.DiscretePlace; import uk.ac.imperial.pipe.models.petrinet.Place; import java.awt.Rectangle; import java.awt.geom.Point2D; import static org.junit.Assert.assertEquals; public class TemporaryArcViewTest { TemporaryArcView<Place> temporaryArcView; Place place; @Before public void setUp() { place = new DiscretePlace("P0", "P0"); place.setX(100); place.setY(100); temporaryArcView = new TemporaryArcView<>(place, new NormalHead()); } @Test public void initialisesBoundsToSource() { Point2D centre = place.getCentre(); Rectangle expected = new Rectangle(0, 0, (int) centre.getX(), (int) centre.getY()); Rectangle actual = temporaryArcView.getBounds(); assertEquals(expected, actual); } @Test public void updatesBoundsIfMouseLargerThanPlace() { Point2D mouse = new Point2D.Double(300, 300); temporaryArcView.setEnd(mouse); Rectangle expected = new Rectangle(0, 0, (int) mouse.getX(), (int) mouse.getY()); Rectangle actual = temporaryArcView.getBounds(); assertEquals(expected, actual); } @Test public void updatesBoundsWithArcPoint() { Point2D mouse = new Point2D.Double(300, 300); temporaryArcView.addIntermediatePoint(new ArcPoint(mouse, true)); Rectangle expected = new Rectangle(0, 0, (int) mouse.getX(), (int) mouse.getY()); Rectangle actual = temporaryArcView.getBounds(); assertEquals(expected, actual); } @Test public void keepsLargestBoundsIfMouseLessThanLargest() { Point2D mouse = new Point2D.Double(10, 20); temporaryArcView.setEnd(mouse); Point2D centre = place.getCentre(); Rectangle expected = new Rectangle(0, 0, (int) centre.getX(), (int) centre.getY()); Rectangle actual = temporaryArcView.getBounds(); assertEquals(expected, actual); } @Test public void ensuresLargestIfXIsNewAndYIsExisting() { Point2D mouse = new Point2D.Double(10, 200); temporaryArcView.setEnd(mouse); Point2D centre = place.getCentre(); Rectangle expected = new Rectangle(0, 0, (int) centre.getX(), (int) mouse.getY()); Rectangle actual = temporaryArcView.getBounds(); assertEquals(expected, actual); } }