package uk.co.certait.htmlexporter.writer; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class RowTrackerTest { private RowTracker tracker; @Before public void setUp() { tracker = new RowTracker(); } @Test public void testAddCell() { tracker.addCell(0, 0, 1, 1); Assert.assertEquals(1, tracker.getTrackedRowCount()); Assert.assertEquals(1, tracker.getNextColumnIndexForRow(0)); tracker.addCell(0, 1, 1, 1); Assert.assertEquals(1, tracker.getTrackedRowCount()); Assert.assertEquals(2, tracker.getNextColumnIndexForRow(0)); tracker.addCell(0, 2, 1, 2);// fills columns 2 and 3 in this row Assert.assertEquals(1, tracker.getTrackedRowCount()); Assert.assertEquals(4, tracker.getNextColumnIndexForRow(0)); tracker.addCell(0, 4, 2, 1);// fills column 4 in rows 0 and 1 // now tracking additional row Assert.assertEquals(2, tracker.getTrackedRowCount()); Assert.assertEquals(0, tracker.getNextColumnIndexForRow(1)); tracker.addCell(1, 0, 1, 1); Assert.assertEquals(1, tracker.getNextColumnIndexForRow(1)); tracker.addCell(1, 1, 1, 1); Assert.assertEquals(2, tracker.getNextColumnIndexForRow(1)); tracker.addCell(1, 2, 1, 1); Assert.assertEquals(3, tracker.getNextColumnIndexForRow(1)); tracker.addCell(1, 3, 1, 1); // index 4 already filled by merge from row above Assert.assertEquals(5, tracker.getNextColumnIndexForRow(1)); tracker.addCell(2, 0, 1, 1); tracker.addCell(2, 1, 3, 2); Assert.assertEquals(0, tracker.getNextColumnIndexForRow(3)); // fill 0 and 1 and 2 filled by merge from above so next should be 3 tracker.addCell(3, 0, 1, 1); Assert.assertEquals(3, tracker.getNextColumnIndexForRow(3)); } }