@@ -260,6 +260,88 @@ public void pdtIndirectReferenceLateInitializing3() {
260
260
document .close ();
261
261
}
262
262
263
+ @ Test
264
+ public void containsIndirectReference1Test () {
265
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
266
+ PdfDictionary testDict = getTestPdfDictionary ();
267
+ Assertions .assertFalse (testDict .containsIndirectReference ());
268
+
269
+ testDict .get (new PdfName ("b" )).makeIndirect (pdfDoc );
270
+ Assertions .assertTrue (testDict .containsIndirectReference ());
271
+ }
272
+
273
+ @ Test
274
+ public void containsIndirectReference2Test () {
275
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
276
+ PdfDictionary testDict = getTestPdfDictionary ();
277
+ PdfObject arrValue = new PdfName ("arrValue" );
278
+ PdfArray pdfArr = new PdfArray ();
279
+ pdfArr .add (arrValue );
280
+
281
+ testDict .put (new PdfName ("array" ), pdfArr );
282
+ Assertions .assertFalse (testDict .containsIndirectReference ());
283
+
284
+ arrValue .makeIndirect (pdfDoc );
285
+ Assertions .assertTrue (testDict .containsIndirectReference ());
286
+ }
287
+
288
+ @ Test
289
+ public void containsIndirectReferenceFlushedDictValueTest () {
290
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
291
+ PdfDictionary testDict = getTestPdfDictionary ();
292
+ Assertions .assertFalse (testDict .containsIndirectReference ());
293
+
294
+ testDict .get (new PdfName ("b" )).makeIndirect (pdfDoc ).flush ();
295
+ Assertions .assertTrue (testDict .containsIndirectReference ());
296
+ }
297
+
298
+ @ Test
299
+ public void containsIndirectReferenceFlushedArrayTest () {
300
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
301
+ PdfDictionary testDict = getTestPdfDictionary ();
302
+ PdfObject arrValue = new PdfName ("arrValue" );
303
+ PdfArray pdfArr = new PdfArray ();
304
+ pdfArr .add (arrValue );
305
+ pdfArr .makeIndirect (pdfDoc );
306
+ pdfArr .flush ();
307
+
308
+ testDict .put (new PdfName ("array" ), pdfArr );
309
+ Assertions .assertTrue (testDict .containsIndirectReference ());
310
+ }
311
+
312
+ @ Test
313
+ public void containsIndirectReferenceFlushedArrayValueTest () {
314
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
315
+ PdfDictionary testDict = getTestPdfDictionary ();
316
+ PdfObject arrValue = new PdfName ("arrValue" );
317
+ PdfArray pdfArr = new PdfArray ();
318
+ pdfArr .add (arrValue );
319
+
320
+ arrValue .makeIndirect (pdfDoc );
321
+ arrValue .flush ();
322
+
323
+ testDict .put (new PdfName ("array" ), pdfArr );
324
+ Assertions .assertTrue (testDict .containsIndirectReference ());
325
+ }
326
+
327
+ @ Test
328
+ public void containsIndirectReferenceFlushedArrayAndArrayValueTest () {
329
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteArrayOutputStream ()));
330
+ PdfDictionary testDict = getTestPdfDictionary ();
331
+ PdfObject arrValue = new PdfName ("arrValue" );
332
+ PdfArray pdfArr = new PdfArray ();
333
+ pdfArr .add (arrValue );
334
+
335
+ arrValue .makeIndirect (pdfDoc );
336
+ arrValue .flush ();
337
+
338
+ pdfArr .makeIndirect (pdfDoc );
339
+ pdfArr .flush ();
340
+
341
+ testDict .put (new PdfName ("array" ), pdfArr );
342
+ Assertions .assertTrue (testDict .containsIndirectReference ());
343
+ }
344
+
263
345
private static PdfDictionary getTestPdfDictionary () {
264
346
HashMap <PdfName , PdfObject > tmpMap = new HashMap <PdfName , PdfObject >();
265
347
tmpMap .put (new PdfName ("b" ), new PdfName ("c" ));
0 commit comments