package nodebox.graphics;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import java.awt.geom.Rectangle2D;
import static nodebox.graphics.SVGRenderer.*;
import static org.junit.Assert.assertEquals;
public class SVGRendererTest {
@Test
public void testRenderPath() {
SVGRenderer.Element el;
Path p = new Path();
p.line(10, 20, 30, 40);
el = renderPath(p);
assertElementEquals("<path d=\"M10,20L30,40\"/>", el);
p.close();
el = renderPath(p);
assertElementEquals("<path d=\"M10,20L30,40Z\"/>", el);
}
@Test
public void testColor() {
Path p = new Path();
p.line(10, 20, 30, 40);
p.setFill(new Color("#334455"));
SVGRenderer.Element el = renderPath(p);
assertElementEquals("<path d=\"M10,20L30,40\" fill=\"#334455\"/>", el);
}
@Test
public void testRenderSVG() {
Path p = new Path();
p.line(10, 20, 30, 40);
String svg = renderToString(ImmutableList.of(p), new Rectangle2D.Float(0, 0, 800, 600));
assertEquals(XML_DECLARATION + "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"800\" height=\"600\" viewBox=\"0 0 800 600\">\n" +
" <path d=\"M10,20L30,40\"/>\n" +
"</svg>", svg);
}
private void assertElementEquals(String expected, SVGRenderer.Element el) {
assertEquals(expected, el.toString());
}
}