package test.svg.loadSave;
import static org.junit.Assert.assertEquals;
import net.sf.latexdraw.models.interfaces.shape.BorderPos;
import net.sf.latexdraw.models.interfaces.shape.IRectangularShape;
import org.junit.Test;
public abstract class TestLoadSaveSVGRectangularShape<T extends IRectangularShape> extends TestLoadSaveSVGPositionShape<T> {
protected void setRectangle(final double x, final double y, final double w, final double h) {
shape.setPosition(x, y + h);
shape.setWidth(w);
shape.setHeight(h);
}
@Override
protected void setDefaultDimensions() {
setRectangle(2, 30, 20, 12);
}
@Override
protected void compareShapes(final T r2) {
super.compareShapes(r2);
assertEquals(shape.getPosition().getX(), r2.getPosition().getX(), 0.0001);
assertEquals(shape.getPosition().getY(), r2.getPosition().getY(), 0.0001);
assertEquals(shape.getWidth(), r2.getWidth(), 0.0001);
assertEquals(shape.getHeight(), r2.getHeight(), 0.0001);
}
@Test
public void testDimensionOkWith00Position() {
setRectangle(0, 0, 10, 10);
compareShapes(generateShape());
}
@Test
public void testDimensionOkWithPositivePosition() {
setRectangle(5, 5, 10, 10);
compareShapes(generateShape());
}
@Test
public void testDimensionOkWithNegPosition() {
setRectangle(-21, -829, 923, 5);
compareShapes(generateShape());
}
@Test
public void testDimensionOkWith00PositionAndMiddleBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.MID);
setRectangle(0, 0, 10, 10);
compareShapes(generateShape());
}
}
@Test
public void testDimensionOkWithPositivePositionAndMiddleBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.MID);
setRectangle(5, 5, 10, 10);
compareShapes(generateShape());
}
}
@Test
public void testDimensionOkWithNegPositionAndMiddleBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.MID);
setRectangle(-21, -829, 923, 5);
compareShapes(generateShape());
}
}
@Test
public void testDimensionOkWith00PositionAndOutBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.OUT);
setRectangle(0, 0, 10, 10);
compareShapes(generateShape());
}
}
@Test
public void testDimensionOkWithPositivePositionAndOutBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.OUT);
setRectangle(5, 5, 10, 10);
compareShapes(generateShape());
}
}
@Test
public void testDimensionOkWithNegPositionAndOutBord() {
if(shape.isBordersMovable()) {
shape.setBordersPosition(BorderPos.OUT);
setRectangle(-21, -829, 923, 5);
compareShapes(generateShape());
}
}
}