package test.models;
import net.sf.latexdraw.models.ShapeFactory;
import net.sf.latexdraw.models.interfaces.prop.ILineArcProp;
import net.sf.latexdraw.models.interfaces.shape.ICircle;
import net.sf.latexdraw.models.interfaces.shape.IGrid;
import net.sf.latexdraw.models.interfaces.shape.IPositionShape;
import net.sf.latexdraw.models.interfaces.shape.IShape;
import net.sf.latexdraw.models.interfaces.shape.ISquare;
import net.sf.latexdraw.models.interfaces.shape.ISquaredShape;
import org.junit.Before;
import org.junit.Test;
import test.models.interfaces.TestISquare;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class TestLSquare extends TestISquare<ISquare> {
@Before
public void setUp() {
shape = ShapeFactory.INST.createSquare();
shape2 = ShapeFactory.INST.createSquare();
}
@Override
@Test
public void testIsTypeOf() {
assertFalse(shape.isTypeOf(null));
assertFalse(shape.isTypeOf(IGrid.class));
assertFalse(shape.isTypeOf(ICircle.class));
assertTrue(shape.isTypeOf(IShape.class));
assertTrue(shape.isTypeOf(IPositionShape.class));
assertTrue(shape.isTypeOf(ISquaredShape.class));
assertTrue(shape.isTypeOf(ILineArcProp.class));
assertTrue(shape.isTypeOf(ISquare.class));
assertTrue(shape.isTypeOf(shape.getClass()));
}
@Test
public void testConstructorsOKPoints() {
ISquare sq = ShapeFactory.INST.createSquare();
assertEquals(4, sq.getNbPoints());
}
@Test(expected=IllegalArgumentException.class)
public void testConstructorsNotNaN() {
ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(Double.NaN, 0), 10);
}
@Test(expected=IllegalArgumentException.class)
public void testConstructorsNotOK0() {
ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(), 0);
}
@Test(expected=IllegalArgumentException.class)
public void testConstructorsNotOKNeg() {
ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(), -10);
}
@Test(expected=IllegalArgumentException.class)
public void testConstructorsNotOKNaNSize() {
ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(), Double.NaN);
}
@Test(expected=IllegalArgumentException.class)
public void testConstructorsNotOKInfSize() {
ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(), Double.POSITIVE_INFINITY);
}
@Test
public void testConstructorsOK() {
ISquare sq = ShapeFactory.INST.createSquare(ShapeFactory.INST.createPoint(20, 26), 11);
assertEqualsDouble(20., sq.getPosition().getX());
assertEqualsDouble(26., sq.getPosition().getY());
assertEqualsDouble(11., sq.getWidth());
assertEqualsDouble(11., sq.getHeight());
}
}