Lines 287-292
Link Here
|
287 |
} |
287 |
} |
288 |
assertEquals(1, sheet.getNumMergedRegions()); |
288 |
assertEquals(1, sheet.getNumMergedRegions()); |
289 |
} |
289 |
} |
|
|
290 |
|
291 |
/** |
292 |
* Dissallow creating wholly or partially overlapping merged regions |
293 |
* as this results in a corrupted workbook |
294 |
*/ |
295 |
@Test |
296 |
public void addOverlappingMergedRegions() { |
297 |
final Workbook wb = _testDataProvider.createWorkbook(); |
298 |
final Sheet sheet = wb.createSheet(); |
299 |
|
300 |
final CellRangeAddress baseRegion = new CellRangeAddress(0, 1, 0, 1); |
301 |
sheet.addMergedRegion(baseRegion); |
302 |
|
303 |
try { |
304 |
final CellRangeAddress duplicateRegion = new CellRangeAddress(0, 1, 0, 1); |
305 |
sheet.addMergedRegion(duplicateRegion); |
306 |
fail("Should not be able to add a merged region if sheet already contains the same merged region"); |
307 |
} catch (final IllegalStateException e) { } //expected |
308 |
|
309 |
try { |
310 |
final CellRangeAddress partiallyOverlappingRegion = new CellRangeAddress(1, 2, 1, 2); |
311 |
sheet.addMergedRegion(partiallyOverlappingRegion); |
312 |
fail("Should not be able to add a merged region if it partially overlaps with an existing merged region"); |
313 |
} catch (final IllegalStateException e) { } //expected |
314 |
|
315 |
try { |
316 |
final CellRangeAddress subsetRegion = new CellRangeAddress(0, 1, 0, 0); |
317 |
sheet.addMergedRegion(subsetRegion); |
318 |
fail("Should not be able to add a merged region if it is a formal subset of an existing merged region"); |
319 |
} catch (final IllegalStateException e) { } //expected |
320 |
|
321 |
try { |
322 |
final CellRangeAddress supersetRegion = new CellRangeAddress(0, 2, 0, 2); |
323 |
sheet.addMergedRegion(supersetRegion); |
324 |
fail("Should not be able to add a merged region if it is a formal superset of an existing merged region"); |
325 |
} catch (final IllegalStateException e) { } //expected |
326 |
|
327 |
final CellRangeAddress disjointRegion = new CellRangeAddress(10, 11, 10, 11); |
328 |
sheet.addMergedRegion(disjointRegion); //allowed |
329 |
} |
290 |
|
330 |
|
291 |
/** |
331 |
/** |
292 |
* When removing one merged region, it would break |
332 |
* When removing one merged region, it would break |
Lines 298-310
Link Here
|
298 |
Sheet sheet = wb.createSheet(); |
338 |
Sheet sheet = wb.createSheet(); |
299 |
CellRangeAddress region = new CellRangeAddress(0, 1, 0, 1); |
339 |
CellRangeAddress region = new CellRangeAddress(0, 1, 0, 1); |
300 |
sheet.addMergedRegion(region); |
340 |
sheet.addMergedRegion(region); |
301 |
region = new CellRangeAddress(1, 2, 0, 1); |
341 |
region = new CellRangeAddress(2, 3, 0, 1); |
302 |
sheet.addMergedRegion(region); |
342 |
sheet.addMergedRegion(region); |
303 |
|
343 |
|
304 |
sheet.removeMergedRegion(0); |
344 |
sheet.removeMergedRegion(0); |
305 |
|
345 |
|
306 |
region = sheet.getMergedRegion(0); |
346 |
region = sheet.getMergedRegion(0); |
307 |
assertEquals("Left over region should be starting at row 1", 1, region.getFirstRow()); |
347 |
assertEquals("Left over region should be starting at row 2", 2, region.getFirstRow()); |
308 |
|
348 |
|
309 |
sheet.removeMergedRegion(0); |
349 |
sheet.removeMergedRegion(0); |
310 |
|
350 |
|