From ee0b346d6f171fd5d03b8332b6032c2b1b087a5e Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Fri, 06 Dec 2013 08:56:24 +0000
Subject: [PATCH] - Fixed unit tests, removing all 'if (resultReader.hasNext())' - which made the tests useless. - Added unit tests about CaseExactMatchingRule && CaseIgnoreMatchingRule use.
---
opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFTestCase.java | 251 ++++++++++++++++++++++++++++++++-----------------
1 files changed, 164 insertions(+), 87 deletions(-)
diff --git a/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFTestCase.java b/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFTestCase.java
index d267e62..95a1e7f 100644
--- a/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFTestCase.java
+++ b/opendj-sdk/opendj-core/src/test/java/org/forgerock/opendj/ldif/LDIFTestCase.java
@@ -30,6 +30,7 @@
import static org.fest.assertions.Assertions.assertThat;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -51,7 +52,9 @@
import org.forgerock.opendj.ldap.requests.ModifyRequest;
import org.forgerock.opendj.ldap.requests.Requests;
import org.forgerock.opendj.ldap.requests.SearchRequest;
+import org.forgerock.opendj.ldap.schema.CoreSchema;
import org.forgerock.opendj.ldap.schema.Schema;
+import org.forgerock.opendj.ldap.schema.SchemaBuilder;
import org.testng.annotations.Test;
/**
@@ -216,15 +219,13 @@
Requests.newSearchRequest("dc=example,dc=com", SearchScope.WHOLE_SUBTREE, "uid=*");
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(2);
- assertThat(entry.getAttribute("uid")).isNotNull();
- assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
- assertThat(entry.getAttribute("uid").firstValueAsString()).isNotNull();
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(2);
+ assertThat(entry.getAttribute("uid")).isNotNull();
+ assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
+ assertThat(entry.getAttribute("uid").firstValueAsString()).isNotNull();
+
resultReader.close();
}
@@ -254,15 +255,13 @@
.setTypesOnly(true);
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(2);
- assertThat(entry.getAttribute("uid")).isNotNull();
- assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
- assertThat(entry.getAttribute("uid")).isEmpty();
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(2);
+ assertThat(entry.getAttribute("uid")).isNotNull();
+ assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
+ assertThat(entry.getAttribute("uid")).isEmpty();
+
resultReader.close();
}
@@ -290,15 +289,13 @@
"(uid=user.0)", "*");
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(2);
- assertThat(entry.getAttribute("uid")).isNotNull();
- assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
- assertThat(entry.getAttribute("uid").firstValueAsString()).isEqualTo("user.0");
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(2);
+ assertThat(entry.getAttribute("uid")).isNotNull();
+ assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
+ assertThat(entry.getAttribute("uid").firstValueAsString()).isEqualTo("user.0");
+
resultReader.close();
}
@@ -326,20 +323,17 @@
"(uid=user.0)", "*").setTypesOnly(true);
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(2);
+ assertThat(entry.getAttribute("objectClass")).isNotNull();
+ assertThat(entry.getAttribute("uid")).isNotNull();
+ assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
+ assertThat(entry.getAttribute("uid")).isEmpty();
+ // The following assert throws an exception because it contains only
+ // attribute descriptions (and not values) are to be returned.
+ assertThat(entry.getAttribute("uid").firstValueAsString()).isNull();
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(2);
- assertThat(entry.getAttribute("objectClass")).isNotNull();
- assertThat(entry.getAttribute("uid")).isNotNull();
- assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
- assertThat(entry.getAttribute("uid")).isEmpty();
- // The following assert throws an exception because it contains only
- // attribute descriptions (and not values) are to be returned.
- assertThat(entry.getAttribute("uid").firstValueAsString()).isNull();
- }
resultReader.close();
}
@@ -372,17 +366,15 @@
"(uid=user.0)", "+");
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getCoreSchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(4);
- assertThat(entry.getAttribute("entryDN").firstValueAsString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttribute("entryUUID")).isNotEmpty();
- assertThat(entry.getAttribute("modifyTimestamp")).isNotEmpty();
- assertThat(entry.getAttribute("modifiersName")).isNotEmpty();
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(4);
+ assertThat(entry.getAttribute("entryDN").firstValueAsString()).isEqualTo(
+ "uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttribute("entryUUID")).isNotEmpty();
+ assertThat(entry.getAttribute("modifyTimestamp")).isNotEmpty();
+ assertThat(entry.getAttribute("modifiersName")).isNotEmpty();
+
resultReader.close();
}
@@ -416,16 +408,14 @@
"(uid=user.0)", "+").setTypesOnly(true);
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getCoreSchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(4);
- assertThat(entry.getAttribute("entryDN")).isEmpty();
- assertThat(entry.getAttribute("entryUUID")).isEmpty();
- assertThat(entry.getAttribute("modifyTimestamp")).isEmpty();
- assertThat(entry.getAttribute("modifiersName")).isEmpty();
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(4);
+ assertThat(entry.getAttribute("entryDN")).isEmpty();
+ assertThat(entry.getAttribute("entryUUID")).isEmpty();
+ assertThat(entry.getAttribute("modifyTimestamp")).isEmpty();
+ assertThat(entry.getAttribute("modifiersName")).isEmpty();
+
resultReader.close();
}
@@ -453,12 +443,10 @@
"(uid=user.0)", "uid");
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(1);
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(1);
+
resultReader.close();
}
@@ -486,17 +474,13 @@
"(uid=user.0)", "uid").setTypesOnly(true);
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(1);
- assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
- assertThat(entry.getAttribute("uid")).isEmpty();
- // The following assert throws an exception because no values contained in, only type.
- assertThat(entry.getAttribute("uid").firstValueAsString()).isNull();
-
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(1);
+ assertThat(entry.getAttribute("uid").getAttributeDescription()).isNotNull();
+ assertThat(entry.getAttribute("uid")).isEmpty();
+ // The following assert throws an exception because no values contained in, only type.
+ assertThat(entry.getAttribute("uid").firstValueAsString()).isNull();
resultReader.close();
}
@@ -524,12 +508,10 @@
"(uid=user.0)", "email");
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- Entry entry = resultReader.readEntry();
- assertThat(entry.getName().toString()).isEqualTo(
- "uid=user.0,ou=People,dc=example,dc=com");
- assertThat(entry.getAttributeCount()).isEqualTo(0);
- }
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("uid=user.0,ou=People,dc=example,dc=com");
+ assertThat(entry.getAttributeCount()).isEqualTo(0);
+
resultReader.close();
}
@@ -558,13 +540,108 @@
"(uid=user.0)", "wro ng"); // wrong syntax filter
final EntryReader resultReader = LDIF.search(reader, sr, Schema.getEmptySchema());
- if (resultReader.hasNext()) {
- resultReader.readEntry();
- }
+ resultReader.readEntry();
resultReader.close();
}
/**
+ * Tries to search for an entry in ldif using ignore case exact matching rule and lower case search filter.
+ *
+ * @throws IOException
+ */
+ @Test
+ public final void testSearchForEntryInLDIFUsingIgnoreMatchingRuleSucceedWithLowerCaseFilter() throws IOException {
+ Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).defaultMatchingRule(
+ CoreSchema.getCaseIgnoreMatchingRule()).defaultSyntax(
+ CoreSchema.getDirectoryStringSyntax()).toSchema().asNonStrictSchema();
+
+ // @formatter:off
+ final LDIFEntryReader input = new LDIFEntryReader(
+ "dn: cn=JPEG,cn=Syntaxes,cn=config",
+ "objectClass: top",
+ "objectClass: ds-cfg-attribute-syntax",
+ "cn: JPEG",
+ "ds-cfg-java-class: org.opends.server.schema.JPEGSyntax",
+ "ds-cfg-enabled: true"
+ ).setSchema(schema);
+ // @formatter:on
+
+ final SearchRequest sr = Requests.newSearchRequest("cn=config", SearchScope.WHOLE_SUBTREE,
+ "(ds-cfg-java-class=org.opends.server.schema.jpegsyntax)", "*");
+ final EntryReader resultReader = LDIF.search(input, sr, schema);
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("cn=JPEG,cn=Syntaxes,cn=config");
+ assertThat(entry.getAttributeCount()).isEqualTo(4);
+ assertThat(entry.getAttribute("ds-cfg-java-class").firstValueAsString()).isEqualTo(
+ "org.opends.server.schema.JPEGSyntax");
+ input.close();
+ }
+
+ /**
+ * Tries to search for an entry in ldif using case exact matching rule and lower case search filter.
+ *
+ * @throws IOException
+ */
+ @Test(expectedExceptions = NoSuchElementException.class)
+ public final void testSearchForEntryInLDIFUsingExactMatchingRuleFailsWithLowerCaseFilter() throws IOException {
+ Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).defaultMatchingRule(
+ CoreSchema.getCaseExactMatchingRule()).defaultSyntax(
+ CoreSchema.getDirectoryStringSyntax()).toSchema().asNonStrictSchema();
+
+ // @formatter:off
+ final LDIFEntryReader input = new LDIFEntryReader(
+ "dn: cn=JPEG,cn=Syntaxes,cn=config",
+ "objectClass: top",
+ "objectClass: ds-cfg-attribute-syntax",
+ "cn: JPEG",
+ "ds-cfg-java-class: org.opends.server.schema.JPEGSyntax",
+ "ds-cfg-enabled: true"
+ ).setSchema(schema);
+ // @formatter:on
+
+ final SearchRequest sr = Requests.newSearchRequest("cn=config", SearchScope.WHOLE_SUBTREE,
+ "(ds-cfg-java-class=org.opends.server.schema.jpegsyntax)", "*");
+ final EntryReader resultReader = LDIF.search(input, sr, schema);
+ resultReader.readEntry();
+ }
+
+ /**
+ * Tries to search for an entry in ldif using case exact matching rule and the right search filter.
+ *
+ * @throws IOException
+ */
+ @Test
+ public final void testSearchForEntryInLDIFUsingExactMatchingRuleSucceedWithRightFilter() throws IOException {
+ Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).defaultMatchingRule(
+ CoreSchema.getCaseExactMatchingRule()).defaultSyntax(
+ CoreSchema.getDirectoryStringSyntax()).toSchema().asNonStrictSchema();
+
+ // @formatter:off
+ final LDIFEntryReader input = new LDIFEntryReader(
+ "dn: cn=JPEG,cn=Syntaxes,cn=config",
+ "objectClass: top",
+ "objectClass: ds-cfg-attribute-syntax",
+ "cn: JPEG",
+ "ds-cfg-java-class: org.opends.server.schema.JPEGSyntax",
+ "ds-cfg-enabled: true"
+ ).setSchema(schema);
+ // @formatter:on
+
+ final SearchRequest sr = Requests.newSearchRequest("cn=config", SearchScope.WHOLE_SUBTREE,
+ "(ds-cfg-java-class=org.opends.server.schema.JPEGSyntax)", "*");
+ final EntryReader resultReader = LDIF.search(input, sr, schema);
+ final Entry entry = resultReader.readEntry();
+ assertThat(entry.getName().toString()).isEqualTo("cn=JPEG,cn=Syntaxes,cn=config");
+ assertThat(entry.getAttributeCount()).isEqualTo(4);
+ assertThat(entry.getAttribute("ds-cfg-java-class").firstValueAsString()).isEqualTo(
+ "org.opends.server.schema.JPEGSyntax");
+ input.close();
+ }
+
+ /**
* Verifying LDIF collection reader.
*
* @throws Exception
--
Gitblit v1.10.0