X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Ftest%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjson%2FJsonServerMapperTest.java;fp=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Ftest%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjson%2FJsonServerMapperTest.java;h=f841aeaf1826ea7805685b888dace028c3d722eb;hb=f3ff1f46c8a04c4a60bbccd44e16d5880b386229;hp=0000000000000000000000000000000000000000;hpb=98c2719d08b7d1791eb2080b4488bba810044608;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/JsonServerMapperTest.java b/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/JsonServerMapperTest.java new file mode 100644 index 000000000..f841aeaf1 --- /dev/null +++ b/security/runtime/org.argeo.security.core/src/test/java/org/argeo/security/json/JsonServerMapperTest.java @@ -0,0 +1,46 @@ +package org.argeo.security.json; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; + +import junit.framework.TestCase; + +import org.apache.commons.io.IOUtils; +import org.argeo.security.ArgeoUser; +import org.argeo.security.BasicArgeoUser; +import org.argeo.security.UserNature; +import org.argeo.server.json.GenericJsonDeserializer; +import org.argeo.server.json.JsonObjectFactoryImpl; +import org.argeo.server.json.JsonServerMapper; + +public class JsonServerMapperTest extends TestCase { + public void testDeserialize() throws Exception { + JsonServerMapper mapper = createJsonServerMapper(); + + Reader reader = null; + try { + InputStream in = getClass().getResource( + "/org/argeo/security/json/gandalf2.json").openStream(); + reader = new InputStreamReader(in); + + ArgeoUser user = (ArgeoUser) mapper.deserialize(reader); + assertEquals("gandalf2", user.getUsername()); + assertEquals(2, user.getRoles().size()); + assertEquals(2, user.getUserNatures().size()); + } finally { + IOUtils.closeQuietly(reader); + } + } + + @SuppressWarnings("unchecked") + public static JsonServerMapper createJsonServerMapper() throws Exception { + JsonServerMapper mapper = new JsonServerMapper(); + mapper.setTargetClass(BasicArgeoUser.class); + GenericJsonDeserializer jsonDeserializer = new GenericJsonDeserializer(); + jsonDeserializer.getObjectFactories().add(new JsonObjectFactoryImpl()); + mapper.getDeserializers().put(UserNature.class, jsonDeserializer); + mapper.afterPropertiesSet(); + return mapper; + } +}