From a2bc68638f55ae0ad7b9e3a04c7a3c02d01384f8 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 13 Feb 2013 23:44:11 +0000
Subject: [PATCH] Partial fix for OPENDJ-758 : Implement configurable update policy for simple and default mappers

---
 opendj3/opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/Example.java |   43 +++++++++++++++++++++++++------------------
 1 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/opendj3/opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/Example.java b/opendj3/opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/Example.java
index 8a042c8..070a2f5 100644
--- a/opendj3/opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/Example.java
+++ b/opendj3/opendj-rest2ldap/src/test/java/org/forgerock/opendj/rest2ldap/Example.java
@@ -18,7 +18,12 @@
 
 import static org.forgerock.json.resource.Resources.newInternalConnectionFactory;
 import static org.forgerock.opendj.ldap.Connections.newAuthenticatedConnectionFactory;
-import static org.forgerock.opendj.rest2ldap.Rest2LDAP.*;
+import static org.forgerock.opendj.rest2ldap.Rest2LDAP.builder;
+import static org.forgerock.opendj.rest2ldap.Rest2LDAP.constant;
+import static org.forgerock.opendj.rest2ldap.Rest2LDAP.object;
+import static org.forgerock.opendj.rest2ldap.Rest2LDAP.simple;
+import static org.forgerock.opendj.rest2ldap.WritabilityPolicy.CREATE_ONLY;
+import static org.forgerock.opendj.rest2ldap.WritabilityPolicy.READ_ONLY;
 
 import java.util.Arrays;
 import java.util.logging.Logger;
@@ -27,7 +32,6 @@
 import org.forgerock.json.resource.Router;
 import org.forgerock.json.resource.servlet.HttpServlet;
 import org.forgerock.opendj.ldap.ConnectionFactory;
-import org.forgerock.opendj.ldap.Functions;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
 import org.forgerock.opendj.ldap.requests.Requests;
 import org.glassfish.grizzly.http.server.HttpServer;
@@ -62,26 +66,29 @@
 
         // Create user resource.
         CollectionResourceProvider users =
-                builder().factory(ldapFactory).baseDN("ou=people,dc=example,dc=com").map(
-                        mapJSONConstant("schemas", Arrays.asList("urn:scim:schemas:core:1.0")),
-                        map("id", "entryUUID").singleValued(true),
-                        map("externalId", "uid").singleValued(true),
-                        map("userName", "mail").singleValued(true),
-                        map("displayName", "cn").singleValued(true),
-                        mapComplex("name", map("givenName", "givenName").singleValued(true), map(
-                                "familyName", "sn").singleValued(true)),
-                        mapComplex("contactInformation", map("telephoneNumber").decoder(
-                                Functions.byteStringToString()).encoder(
-                                Functions.objectToByteString()).singleValued(true), map(
-                                "emailAddress", "mail").singleValued(true)),
-                        mapLDAPConstant("objectClass", "top", "person", "organizationalPerson", "inetOrgPerson"))
-                        .build();
+                builder().factory(ldapFactory).baseDN("ou=people,dc=example,dc=com")
+                    .attribute("schemas", constant(Arrays.asList("urn:scim:schemas:core:1.0")))
+                    .attribute("id", simple("uid").singleValued(true).required(true).writability(CREATE_ONLY))
+                    .attribute("rev", simple("etag").singleValued(true).writability(READ_ONLY))
+                    .attribute("userName", simple("mail").singleValued(true).writability(READ_ONLY))
+                    .attribute("displayName", simple("cn").singleValued(true).required(true))
+                    .attribute("name", object()
+                            .attribute("givenName", simple("givenName").singleValued(true))
+                            .attribute("familyName", simple("sn").singleValued(true).required(true)))
+                    .attribute("contactInformation", object()
+                            .attribute("telephoneNumber", simple("telephoneNumber").singleValued(true))
+                            .attribute("emailAddress", simple("mail").singleValued(true)))
+                    .additionalLDAPAttribute("objectClass", "top", "person", "organizationalPerson", "inetOrgPerson")
+                    .build();
         router.addRoute("/users", users);
 
         // Create group resource.
         CollectionResourceProvider groups =
-                builder().factory(ldapFactory).baseDN("ou=groups,dc=example,dc=com").map(
-                        mapAllOf("cn", "ou", "description", "uniquemember")).build();
+                builder().factory(ldapFactory).baseDN("ou=groups,dc=example,dc=com")
+                    .attribute("cn", simple("cn").singleValued(true))
+                    .attribute("description", simple("description"))
+                    .attribute("member", simple("uniquemember"))
+                    .build();
         router.addRoute("/groups", groups);
 
         final org.forgerock.json.resource.ConnectionFactory resourceFactory =

--
Gitblit v1.10.0