public void TransformDocument_TableStartAtBottom_NewPageBeforeTable() { var sut = new XmlPrinter { DocumentHeight = 20 }; sut.LoadXml( "<root>" + "<move relY=\"15\" />" + "<table><columns>" + "<column width=\"10\">C1</column>" + "</columns><data>" + "<tr><td>1</td></tr>" + "<tr><td>2</td></tr>" + "</data></table>" + "</root>"); var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); XDocument.Parse(sut.Document.OuterXml).Should().BeEquivalentTo( XDocument.Parse( "<root>" + "<move relY=\"15\" />" + "<newPage />" + "<text relX=\"0\">C1</text>" + "<move relY=\"4\" />" + "<text relX=\"0\">1</text>" + "<move relY=\"4\" />" + "<text relX=\"0\">2</text>" + "<move relY=\"4\" />" + "</root>")); }
public void TransformDocument_TableTopLine_ConvertedToTexts() { var sut = new XmlPrinter { DocumentHeight = 100 }; sut.LoadXml( "<root>" + "<table><columns>" + "<column width=\"10\" topLine=\"true\">C1</column>" + "<column width=\"20\">C2</column>" + "</columns><data>" + "<tr><td>1</td><td>2</td></tr>" + "</data></table>" + "</root>"); var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); XDocument.Parse(sut.Document.OuterXml).Should().BeEquivalentTo( XDocument.Parse( "<root>" + "<line relToX=\"10\" />" + "<text relX=\"0\">C1</text>" + "<text relX=\"10\">C2</text>" + "<move relY=\"4\" />" + "<line relToX=\"10\" />" + "<text relX=\"0\">1</text>" + "<text relX=\"10\">2</text>" + "<move relY=\"4\" />" + "</root>")); }
public void TransformDocument_MoveRelativeOnly_CursorUpdated() { var sut = new XmlPrinter(); sut.LoadXml("<root><move relX=\"10\" relY=\"20\" /></root>"); sut.CursorX = 5; sut.CursorY = 8; var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); using (new AssertionScope()) { sut.CursorX.Should().Be(15); sut.CursorY.Should().Be(28); } }
public void TransformDocument_MoveAbsolute_CursorUpdated() { var sut = new XmlPrinter(); sut.LoadXml("<root><move absX=\"10\" absY=\"20\" /></root>"); sut.CursorX = 5; sut.CursorY = 8; var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); using (new AssertionScope()) { sut.CursorX.Should().Be(10); sut.CursorY.Should().Be(20); } }
public void TransformDocument_Rectangle_ConvertedToLines() { var sut = new XmlPrinter(); sut.LoadXml("<root><rectangle relFromX=\"10\" relFromY=\"20\" relToX=\"30\" relToY=\"40\" /></root>"); var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); XDocument.Parse(sut.Document.OuterXml).Should().BeEquivalentTo( XDocument.Parse( "<root>" + "<line relFromX=\"10\" relFromY=\"20\" relToX=\"30\" relToY=\"20\" />" + "<line relFromX=\"30\" relFromY=\"20\" relToX=\"30\" relToY=\"40\" />" + "<line relFromX=\"30\" relFromY=\"40\" relToX=\"10\" relToY=\"40\" />" + "<line relFromX=\"10\" relFromY=\"40\" relToX=\"10\" relToY=\"20\" />" + "</root>")); }
public void TransformDocument_NewPage_CursorReset() { var sut = new XmlPrinter(); sut.LoadXml("<root><move absX=\"10\" absY=\"20\" relX=\"3\" relY=\"4\" /><newPage/></root>"); // initialize cursor with irrelevant values sut.CursorX = 5; sut.CursorY = 8; var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); using (new AssertionScope()) { sut.CursorX.Should().Be(0); sut.CursorY.Should().Be(0); } }
public void TransformDocument_PageTexts_ConvertedToLines() { var sut = new XmlPrinter { DocumentHeight = 10 }; sut.LoadXml( "<root>" + "<pageTexts><font><text>page {pageNumber}</text></font></pageTexts>" + "<table><columns>" + "<column width=\"10\">C1</column>" + "</columns><data>" + "<tr><td>1</td></tr>" + "<tr><td>2</td></tr>" + "</data></table>" + "</root>"); var graphics = Substitute.For <IGraphics>(); sut.TransformDocument(graphics); XDocument.Parse(sut.Document.OuterXml).Should().BeEquivalentTo( XDocument.Parse( "<root>" + "<font><text>page 1</text></font>" + "<text relX=\"0\">C1</text>" + "<move relY=\"4\" />" + "<text relX=\"0\">1</text>" + "<newPage />" + "<font><text>page 2</text></font>" + "<text relX=\"0\">C1</text>" + "<move relY=\"4\" />" + "<text relX=\"0\">2</text>" + "<move relY=\"4\" />" + "</root>")); }