From d9722bcadc7bf619808426fc82cbb0c74b1646b0 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 09 Sep 2010 17:31:59 +0000
Subject: [PATCH] Make EntryReader and ChangeRecordReader APIs easier to use:

---
 sdk/tests/unit-tests-testng/src/org/opends/sdk/ldif/LDIFEntryReaderTestCase.java |   76 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/ldif/LDIFEntryReaderTestCase.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/ldif/LDIFEntryReaderTestCase.java
index 78c5b94..e4e345a 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/ldif/LDIFEntryReaderTestCase.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/ldif/LDIFEntryReaderTestCase.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2009 Sun Microsystems, Inc.
+ *      Copyright 2009-2010 Sun Microsystems, Inc.
  */
 
 package org.opends.sdk.ldif;
@@ -32,9 +32,12 @@
 import static org.testng.Assert.assertNotNull;
 
 import java.io.FileInputStream;
+import java.util.NoSuchElementException;
 
-import org.opends.sdk.AbstractEntry;
+import org.opends.sdk.DN;
+import org.opends.sdk.Entry;
 import org.opends.sdk.TestCaseUtils;
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
 
@@ -52,6 +55,45 @@
    *           If the test failed unexpectedly.
    */
   @Test()
+  public void testEmpty() throws Exception
+  {
+    final String path = TestCaseUtils.createTempFile("");
+    final FileInputStream in = new FileInputStream(path);
+    final LDIFEntryReader reader = new LDIFEntryReader(in);
+    try
+    {
+      reader.setValidateSchema(false);
+
+      Assert.assertFalse(reader.hasNext());
+      Assert.assertFalse(reader.hasNext());
+      try
+      {
+        reader.readEntry();
+        Assert
+            .fail("reader.readEntry() should have thrown NoSuchElementException");
+      }
+      catch (NoSuchElementException e)
+      {
+        // This is expected.
+      }
+      Assert.assertFalse(reader.hasNext());
+    }
+    finally
+    {
+      reader.close();
+    }
+  }
+
+
+
+  /**
+   * Tests readEntry method of LDIFEntryReader class.See
+   * https://opends.dev.java.net/issues/show_bug.cgi?id=4545 for more details.
+   *
+   * @throws Exception
+   *           If the test failed unexpectedly.
+   */
+  @Test()
   public void testReadEntry() throws Exception
   {
     final String path = TestCaseUtils
@@ -80,9 +122,31 @@
             "postalAddress: Aaccf Amar$01251 Chestnut Street$Panama City, DE  50369",
             "description: This is the description for Aaccf Amar.");
     final FileInputStream in = new FileInputStream(path);
-    final LDIFEntryReader entryReader = new LDIFEntryReader(in);
-    entryReader.setValidateSchema(false);
-    final AbstractEntry entry = (AbstractEntry) entryReader.readEntry();
-    assertNotNull(entry);
+    final LDIFEntryReader reader = new LDIFEntryReader(in);
+    try
+    {
+      reader.setValidateSchema(false);
+
+      Assert.assertTrue(reader.hasNext());
+      final Entry entry = reader.readEntry();
+      assertNotNull(entry);
+      Assert.assertEquals(entry.getName(),
+          DN.valueOf("uid=1,ou=people,dc=ucsf,dc=edu"));
+      Assert.assertFalse(reader.hasNext());
+      try
+      {
+        reader.readEntry();
+        Assert
+            .fail("reader.readEntry() should have thrown NoSuchElementException");
+      }
+      catch (NoSuchElementException e)
+      {
+        // This is expected.
+      }
+    }
+    finally
+    {
+      reader.close();
+    }
   }
 }

--
Gitblit v1.10.0