]> git.argeo.org Git - lgpl/argeo-commons.git/blob - JsonServerMapperTest.java
f841aeaf1826ea7805685b888dace028c3d722eb
[lgpl/argeo-commons.git] / JsonServerMapperTest.java
1 package org.argeo.security.json;
2
3 import java.io.InputStream;
4 import java.io.InputStreamReader;
5 import java.io.Reader;
6
7 import junit.framework.TestCase;
8
9 import org.apache.commons.io.IOUtils;
10 import org.argeo.security.ArgeoUser;
11 import org.argeo.security.BasicArgeoUser;
12 import org.argeo.security.UserNature;
13 import org.argeo.server.json.GenericJsonDeserializer;
14 import org.argeo.server.json.JsonObjectFactoryImpl;
15 import org.argeo.server.json.JsonServerMapper;
16
17 public class JsonServerMapperTest extends TestCase {
18 public void testDeserialize() throws Exception {
19 JsonServerMapper mapper = createJsonServerMapper();
20
21 Reader reader = null;
22 try {
23 InputStream in = getClass().getResource(
24 "/org/argeo/security/json/gandalf2.json").openStream();
25 reader = new InputStreamReader(in);
26
27 ArgeoUser user = (ArgeoUser) mapper.deserialize(reader);
28 assertEquals("gandalf2", user.getUsername());
29 assertEquals(2, user.getRoles().size());
30 assertEquals(2, user.getUserNatures().size());
31 } finally {
32 IOUtils.closeQuietly(reader);
33 }
34 }
35
36 @SuppressWarnings("unchecked")
37 public static JsonServerMapper createJsonServerMapper() throws Exception {
38 JsonServerMapper mapper = new JsonServerMapper();
39 mapper.setTargetClass(BasicArgeoUser.class);
40 GenericJsonDeserializer jsonDeserializer = new GenericJsonDeserializer();
41 jsonDeserializer.getObjectFactories().add(new JsonObjectFactoryImpl());
42 mapper.getDeserializers().put(UserNature.class, jsonDeserializer);
43 mapper.afterPropertiesSet();
44 return mapper;
45 }
46 }