Fix issue with LDAP context cast
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / test / java / org / argeo / security / json / ArgeoUserJsonTest.java
index 02b2529bbe0303131738bea640038ac33e8ef63b..64306cd060a7f5d74e4cbf95d5252b2997a27c6f 100644 (file)
@@ -9,11 +9,12 @@ 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.SimpleArgeoUser;
 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.argeo.server.json.JsonServerMapper;
 import org.codehaus.jackson.JsonFactory;
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.ObjectMapper;
@@ -43,7 +44,7 @@ public class ArgeoUserJsonTest extends TestCase {
                ArgeoUserDetails argeoUserDetails = new ArgeoUserDetails("USER",
                                natures, "PASSWORD", roles);
 
-               BasicArgeoUser argeoUser = new BasicArgeoUser(argeoUserDetails);
+               SimpleArgeoUser argeoUser = new SimpleArgeoUser(argeoUserDetails);
 
                StringWriter writer = new StringWriter();
 
@@ -61,8 +62,30 @@ public class ArgeoUserJsonTest extends TestCase {
                // BasicArgeoUser aud = objectMapper.readValue(audJo,
                // BasicArgeoUser.class);
 
-               ArgeoUserMapper argeoUserMapper = new ArgeoUserMapper();
-               ArgeoUser argeoUserDes = argeoUserMapper.parse(audJo);
+               JsonServerMapper mapper = JsonServerMapperTest.createJsonServerMapper();
+               ArgeoUser aud = (ArgeoUser) mapper.deserialize(audJo);
+
+               assertEquals(argeoUser.getUsername(), aud.getUsername());
+               assertEquals(argeoUser.getRoles().size(), aud.getRoles().size());
+               assertEquals(argeoUser.getUserNatures().size(), aud.getUserNatures()
+                               .size());
+
+               assertSimpleUserNature((SimpleUserNature) argeoUser.getUserNatures()
+                               .get(0), (SimpleUserNature) aud.getUserNatures().get(0));
+               assertCoworkerNature(
+                               (CoworkerNature) argeoUser.getUserNatures().get(1),
+                               (CoworkerNature) aud.getUserNatures().get(1));
+
+       }
+
+       public static void assertSimpleUserNature(SimpleUserNature expected,
+                       SimpleUserNature reached) {
+               assertEquals(expected.getEmail(), reached.getEmail());
+       }
+
+       public static void assertCoworkerNature(CoworkerNature expected,
+                       CoworkerNature reached) {
+               assertEquals(expected.getMobile(), reached.getMobile());
        }
 
        public void testSeriDeserialize() {