X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Ftest%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjson%2FArgeoUserJsonTest.java;fp=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Ftest%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjson%2FArgeoUserJsonTest.java;h=02b2529bbe0303131738bea640038ac33e8ef63b;hb=62a87e0195f69747aa5168ebecfebd8626442ba8;hp=0000000000000000000000000000000000000000;hpb=79a21ae370e28068f19913f65262691f38088c0c;p=lgpl%2Fargeo-commons.git 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 index 000000000..02b2529bb --- /dev/null +++ b/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/ArgeoUserJsonTest.java @@ -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 natures = new ArrayList(); + + 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 natures = new ArrayList(); + 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 + } +}