]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/ArgeoUserJsonTest.java
Explore JSon approach
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / test / java / org / argeo / security / json / ArgeoUserJsonTest.java
diff --git a/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/ArgeoUserJsonTest.java b/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/ArgeoUserJsonTest.java
new file mode 100644 (file)
index 0000000..02b2529
--- /dev/null
@@ -0,0 +1,95 @@
+package org.argeo.security.json;
+
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.security.ArgeoUser;
+import org.argeo.security.BasicArgeoUser;
+import org.argeo.security.UserNature;
+import org.argeo.security.core.ArgeoUserDetails;
+import org.argeo.security.nature.CoworkerNature;
+import org.argeo.security.nature.SimpleUserNature;
+import org.codehaus.jackson.JsonFactory;
+import org.codehaus.jackson.JsonGenerator;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.springframework.security.GrantedAuthority;
+import org.springframework.security.GrantedAuthorityImpl;
+
+import com.springsource.json.writer.JSONArray;
+import com.springsource.json.writer.JSONObject;
+
+public class ArgeoUserJsonTest extends TestCase {
+       private static Log log = LogFactory.getLog(ArgeoUserJsonTest.class);
+
+       public void testMapper() throws Exception {
+               List<UserNature> natures = new ArrayList<UserNature>();
+
+               SimpleUserNature sun = new SimpleUserNature();
+               sun.setFirstName("Mickey");
+               sun.setEmail("username@domain.com");
+               natures.add(sun);
+
+               CoworkerNature cwn = new CoworkerNature();
+               cwn.setMobile("+123456789");
+               natures.add(cwn);
+
+               GrantedAuthority[] roles = { new GrantedAuthorityImpl("ROLE1"),
+                               new GrantedAuthorityImpl("ROLE2") };
+               ArgeoUserDetails argeoUserDetails = new ArgeoUserDetails("USER",
+                               natures, "PASSWORD", roles);
+
+               BasicArgeoUser argeoUser = new BasicArgeoUser(argeoUserDetails);
+
+               StringWriter writer = new StringWriter();
+
+               JsonFactory jsonFactory = new JsonFactory();
+               JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(writer);
+               jsonGenerator.useDefaultPrettyPrinter();
+
+               ObjectMapper objectMapper = new ObjectMapper();
+
+               objectMapper.writeValue(jsonGenerator, argeoUser);
+               String audJo = writer.toString();
+
+               log.info("audJo:\n" + audJo);
+
+               // BasicArgeoUser aud = objectMapper.readValue(audJo,
+               // BasicArgeoUser.class);
+
+               ArgeoUserMapper argeoUserMapper = new ArgeoUserMapper();
+               ArgeoUser argeoUserDes = argeoUserMapper.parse(audJo);
+       }
+
+       public void testSeriDeserialize() {
+               List<UserNature> natures = new ArrayList<UserNature>();
+               JSONArray naturesJo = new JSONArray();
+
+               SimpleUserNature sun = new SimpleUserNature();
+               sun.setEmail("username@domain.com");
+               natures.add(sun);
+               naturesJo.put(new JSONObject(sun));
+
+               CoworkerNature cwn = new CoworkerNature();
+               cwn.setMobile("+123456789");
+               natures.add(cwn);
+               naturesJo.put(new JSONObject(cwn));
+
+               GrantedAuthority[] roles = { new GrantedAuthorityImpl("ROLE1"),
+                               new GrantedAuthorityImpl("ROLE1") };
+               ArgeoUserDetails argeoUserDetails = new ArgeoUserDetails("USER",
+                               natures, "PASSWORD", roles);
+
+               JSONObject argeoUserDetailsJo = new JSONObject(argeoUserDetails);
+               argeoUserDetailsJo.put("userNatures", naturesJo);
+
+               log.info("argeoUserDetailsJo=" + argeoUserDetailsJo.toString(2));
+
+               // JSONParser jsonParser = new JSONParser();
+               // ArgeoUserDetails argeoUserDetails = JSONParser
+       }
+}