package org.robolectric.shadows; import android.graphics.Path; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.TestRunners; import org.robolectric.shadow.api.Shadow; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.robolectric.Shadows.shadowOf; import static org.robolectric.shadows.ShadowPath.Point.Type.LINE_TO; import static org.robolectric.shadows.ShadowPath.Point.Type.MOVE_TO; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowPathTest { @Test public void testGradTo() { Path path = Shadow.newInstanceOf(Path.class); path.quadTo(0, 5, 10, 15); ShadowPath shadowPath = shadowOf(path); assertEquals(shadowPath.getQuadDescription(), "Add a quadratic bezier from last point, approaching (0.0,5.0), ending at (10.0,15.0)"); } @Test public void testMoveTo() throws Exception { Path path = Shadow.newInstanceOf(Path.class); path.moveTo(2, 3); path.moveTo(3, 4); List<ShadowPath.Point> moveToPoints = shadowOf(path).getPoints(); assertEquals(2, moveToPoints.size()); assertEquals(new ShadowPath.Point(2, 3, MOVE_TO), moveToPoints.get(0)); assertEquals(new ShadowPath.Point(3, 4, MOVE_TO), moveToPoints.get(1)); } @Test public void testLineTo() throws Exception { Path path = Shadow.newInstanceOf(Path.class); path.lineTo(2, 3); path.lineTo(3, 4); List<ShadowPath.Point> lineToPoints = shadowOf(path).getPoints(); assertEquals(2, lineToPoints.size()); assertEquals(new ShadowPath.Point(2, 3, LINE_TO), lineToPoints.get(0)); assertEquals(new ShadowPath.Point(3, 4, LINE_TO), lineToPoints.get(1)); } @Test public void testReset() throws Exception { Path path = Shadow.newInstanceOf(Path.class); path.moveTo(0, 3); path.lineTo(2, 3); path.quadTo(2, 3, 4, 5); path.reset(); ShadowPath shadowPath = shadowOf(path); List<ShadowPath.Point> points = shadowPath.getPoints(); assertEquals(0, points.size()); assertNull(shadowPath.getWasMovedTo()); assertEquals("", shadowPath.getQuadDescription()); } @Test public void test_copyConstructor() throws Exception { Path path = Shadow.newInstanceOf(Path.class); path.moveTo(0, 3); path.lineTo(2, 3); path.quadTo(2, 3, 4, 5); Path copiedPath = new Path(path); assertEquals(shadowOf(path).getPoints(), shadowOf(copiedPath).getPoints()); assertEquals(shadowOf(path).getWasMovedTo(), shadowOf(copiedPath).getWasMovedTo()); assertEquals(shadowOf(path).getQuadDescription(), shadowOf(copiedPath).getQuadDescription()); } }