Package org.stjs.server

Source Code of org.stjs.server.GsonTest

package org.stjs.server;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.io.IOException;
import java.lang.reflect.Type;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.junit.Test;
import org.stjs.javascript.Array;
import org.stjs.javascript.Date;
import org.stjs.javascript.JSCollections;
import org.stjs.javascript.Map;
import org.stjs.server.json.gson.GsonAdapters;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

public class GsonTest {
  @Test
  public void testSerializeArray() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();
    String s = gson.toJson(JSCollections.$array(1, 2, 3));
    assertEquals("[1,2,3]", s);
  }

  @Test
  public void testSerializeArrayPojo() throws JsonGenerationException, JsonMappingException, IOException {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();

    String s = gson.toJson(JSCollections.$array(new Pojo(1), new Pojo(2)));
    assertEquals("[{\"n\":1},{\"n\":2}]", s);
  }

  @Test
  public void testSerializeMap() throws JsonGenerationException, JsonMappingException, IOException {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();

    String s = gson.toJson(JSCollections.$map("a", 1));
    assertEquals("{\"a\":1}", s);
  }

  @Test
  public void testSerializeMapPojo() throws JsonGenerationException, JsonMappingException, IOException {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();

    String s = gson.toJson(JSCollections.$map("A", new Pojo(1)));
    assertEquals("{\"A\":{\"n\":1}}", s);
  }

  @Test
  public void testSerializeDate() throws JsonGenerationException, JsonMappingException, IOException {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();

    String s = gson.toJson(new Date(2011, 10, 9, 17, 10, 0, 0));
    assertEquals("\"2011-11-09 17:10:00\"", s);
  }

  @Test
  public void testDeserializeArray() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();
    Type collectionType = new TypeToken<Array<Integer>>() {
    }.getType();
    Array<Integer> a = gson.fromJson("[1,2,3]", collectionType);
    assertNotNull(a);
    assertEquals(3, a.$length());
    assertEquals(2, (int) a.$get(1));
  }

  @Test
  public void testDeserializeMap() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();
    Type collectionType = new TypeToken<Map<String, Integer>>() {
    }.getType();
    Map<String, Integer> m = gson.fromJson("{\"a\":1}", collectionType);
    assertNotNull(m);
    assertEquals(1, (int) m.$get("a"));
  }

  @Test
  public void testDeserializeDate() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    GsonAdapters.addAll(gsonBuilder);
    Gson gson = gsonBuilder.create();
    Date d = gson.fromJson("\"2011-11-09 17:10:00\"", Date.class);
    assertNotNull(d);
    assertEquals(10, (int) d.getMonth());
  }

}
TOP

Related Classes of org.stjs.server.GsonTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.