Package org.slim3.json.test

Source Code of org.slim3.json.test.AppEngineTypeListAttrsModelTest

package org.slim3.json.test;

import java.net.URL;
import java.util.Arrays;

import net.arnx.jsonic.JSON;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slim3.tester.TestEnvironment;

import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.datastore.Blob;
import com.google.appengine.api.datastore.Category;
import com.google.appengine.api.datastore.Email;
import com.google.appengine.api.datastore.GeoPt;
import com.google.appengine.api.datastore.IMHandle;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.appengine.api.datastore.Link;
import com.google.appengine.api.datastore.PhoneNumber;
import com.google.appengine.api.datastore.PostalAddress;
import com.google.appengine.api.datastore.Rating;
import com.google.appengine.api.datastore.ShortBlob;
import com.google.appengine.api.datastore.Text;
import com.google.appengine.api.users.User;
import com.google.apphosting.api.ApiProxy;

public class AppEngineTypeListAttrsModelTest {
    @Before
    public void setUp() throws Exception {
        ApiProxy.setEnvironmentForCurrentThread(new TestEnvironment() {
            @Override
            public String getAppId() {
                return "slim3-gen";
            }
        });
    }

    @Test
    public void modelToJson() throws Exception {
        AppEngineTypeListAttrsModel m = new AppEngineTypeListAttrsModel();
        m.setEmailListAttr(Arrays.asList(new Email("a@b.com"), new Email(
            "d@e.com")));
        m.setBlobKeyListAttr(Arrays.asList(
            new BlobKey("lkwejl2k3jrksl"),
            new BlobKey("kaekl23joij")));
        m.setBlobListAttr(Arrays.asList(new Blob("hello".getBytes()), new Blob(
            "world".getBytes())));
        m.setCategoryListAttr(Arrays.asList(
            new Category("partOfSpeech"),
            new Category("kind")));
        m.setGeoPtListAttr(Arrays.asList(new GeoPt(1.0f, 2.0f), new GeoPt(
            3.0f,
            4.0f)));
        m.setImHandleListAttr(Arrays.asList(new IMHandle(
            IMHandle.Scheme.xmpp,
            "address"), new IMHandle(new URL("http://test"), "address")));
        m.setKeyListAttr(Arrays.asList(
            KeyFactory.createKey("kind", "name"),
            KeyFactory.createKey("kind", 1)));
        m
            .setLinkListAttr(Arrays.asList(new Link("link"), new Link(
                "external")));
        m.setPhoneNumberListAttr(Arrays.asList(
            new PhoneNumber("000-0000-0000"),
            new PhoneNumber("111-1111-1111")));
        m.setPostalAddressListAttr(Arrays.asList(
            new PostalAddress("111-1111"),
            new PostalAddress("222-2222")));
        m.setRatingListAttr(Arrays.asList(new Rating(80), new Rating(90)));
        m.setShortBlobListAttr(Arrays.asList(
            new ShortBlob("hello".getBytes()),
            new ShortBlob("world".getBytes())));
        m.setTextListAttr(Arrays.asList(new Text("hello"), new Text("world")));
        m.setUserListAttr(Arrays.asList(
            new User("email", "authDomain"),
            new User("email", "authDomain", "userId"),
            new User("email", "authDomain", "userId", "federatedId")));

        String json = AppEngineTypeListAttrsModelMeta.get().modelToJson(m);
        System.out.println(json);
        JSON j = new JSON();
        j.setSuppressNull(true);
        System.out.println(j.format(m));
        // JSON.decode(json);

        Assert
            .assertEquals(
                "{\"blobKeyListAttr\":[\"lkwejl2k3jrksl\",\"kaekl23joij\"]"
                    + ",\"blobListAttr\":[\"aGVsbG8=\",\"d29ybGQ=\"]"
                    + ",\"categoryListAttr\":[\"partOfSpeech\",\"kind\"]"
                    + ",\"emailListAttr\":[\"a@b.com\",\"d@e.com\"]"
                    + ",\"geoPtListAttr\":["
                    + "{\"latitude\":1.0,\"longitude\":2.0}"
                    + ",{\"latitude\":3.0,\"longitude\":4.0}"
                    + "]"
                    + ",\"imHandleListAttr\":["
                    + "{\"address\":\"address\",\"protocol\":\"xmpp\"}"
                    + ",{\"address\":\"address\",\"protocol\":\"http://test\"}"
                    + "]"
                    + ",\"keyListAttr\":["
                    + "\"aglzbGltMy1nZW5yDgsSBGtpbmQiBG5hbWUM\",\"aglzbGltMy1nZW5yCgsSBGtpbmQYAQw\""
                    + "]"
                    + ",\"linkListAttr\":[\"link\",\"external\"]"
                    + ",\"phoneNumberListAttr\":[\"000-0000-0000\",\"111-1111-1111\"]"
                    + ",\"postalAddressListAttr\":[\"111-1111\",\"222-2222\"]"
                    + ",\"ratingListAttr\":[80,90]"
                    + ",\"shortBlobListAttr\":[\"aGVsbG8=\",\"d29ybGQ=\"]"
                    + ",\"textListAttr\":[\"hello\",\"world\"]"
                    + ",\"userListAttr\":[{\"authDomain\":\"authDomain\",\"email\":\"email\"}"
                    + ",{\"authDomain\":\"authDomain\",\"email\":\"email\",\"userId\":\"userId\"}"
                    + ",{\"authDomain\":\"authDomain\",\"email\":\"email\""
                    + ",\"federatedIdentity\":\"federatedId\",\"userId\":\"userId\"}]"
                    + "}",
                json);
    }

    @Test
    public void modelToJson_null() {
        AppEngineTypeListAttrsModel m = new AppEngineTypeListAttrsModel();
        String json = AppEngineTypeListAttrsModelMeta.get().modelToJson(m);
        Assert.assertEquals("{}", json);
    }

    @Test
    public void jsonToModel() throws Exception {
        AppEngineTypeListAttrsModel m =
            AppEngineTypeListAttrsModelMeta
                .get()
                .jsonToModel(
                    "{\"blobKeyListAttr\":[\"lkwejl2k3jrksl\",\"kaekl23joij\"]"
                        + ",\"blobListAttr\":[\"aGVsbG8=\",\"d29ybGQ=\"]"
                        + ",\"categoryListAttr\":[\"partOfSpeech\",\"kind\"]"
                        + ",\"emailListAttr\":[\"a@b.com\",\"d@e.com\"]"
                        + ",\"geoPtListAttr\":["
                        + "{\"latitude\":1.0,\"longitude\":2.0}"
                        + ",{\"latitude\":3.0,\"longitude\":4.0}"
                        + "]"
                        + ",\"imHandleListAttr\":["
                        + "{\"address\":\"address\",\"protocol\":\"xmpp\"}"
                        + ",{\"address\":\"address\",\"protocol\":\"http://test\"}"
                        + "]"
                        + ",\"keyListAttr\":["
                        + "\"aglzbGltMy1nZW5yDgsSBGtpbmQiBG5hbWUM\",\"aglzbGltMy1nZW5yCgsSBGtpbmQYAQw\""
                        + "]"
                        + ",\"linkListAttr\":[\"link\",\"external\"]"
                        + ",\"phoneNumberListAttr\":[\"000-0000-0000\",\"111-1111-1111\"]"
                        + ",\"postalAddressListAttr\":[\"111-1111\",\"222-2222\"]"
                        + ",\"ratingListAttr\":[80,90]"
                        + ",\"shortBlobListAttr\":[\"aGVsbG8=\",\"d29ybGQ=\"]"
                        + ",\"textListAttr\":[\"hello\",\"world\"]"
                        + ",\"userListAttr\":[{\"authDomain\":\"authDomain\",\"email\":\"email\"}"
                        + ",{\"authDomain\":\"authDomain\",\"email\":\"email\",\"userId\":\"userId\"}"
                        + ",{\"authDomain\":\"authDomain\",\"email\":\"email\""
                        + ",\"federatedIdentity\":\"federatedId\",\"userId\":\"userId\"}]"
                        + "}");
        Assert
            .assertArrayEquals(
                Arrays
                    .asList(new Email("a@b.com"), new Email("d@e.com"))
                    .toArray(),
                m.getEmailListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new BlobKey("lkwejl2k3jrksl"),
                new BlobKey("kaekl23joij")).toArray(),
            m.getBlobKeyListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new Blob("hello".getBytes()),
                new Blob("world".getBytes())).toArray(),
            m.getBlobListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays
                .asList(new Category("partOfSpeech"), new Category("kind"))
                .toArray(),
            m.getCategoryListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays
                .asList(new GeoPt(1.0f, 2.0f), new GeoPt(3.0f, 4.0f))
                .toArray(),
            m.getGeoPtListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new IMHandle(IMHandle.Scheme.xmpp, "address"),
                new IMHandle(new URL("http://test"), "address")).toArray(),
            m.getImHandleListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                KeyFactory.createKey("kind", "name"),
                KeyFactory.createKey("kind", 1)).toArray(),
            m.getKeyListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(new Link("link"), new Link("external")).toArray(),
            m.getLinkListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new PhoneNumber("000-0000-0000"),
                new PhoneNumber("111-1111-1111")).toArray(),
            m.getPhoneNumberListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new PostalAddress("111-1111"),
                new PostalAddress("222-2222")).toArray(),
            m.getPostalAddressListAttr().toArray());
        Assert.assertArrayEquals(Arrays
            .asList(new Rating(80), new Rating(90))
            .toArray(), m.getRatingListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(
                new ShortBlob("hello".getBytes()),
                new ShortBlob("world".getBytes())).toArray(),
            m.getShortBlobListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays.asList(new Text("hello"), new Text("world")).toArray(),
            m.getTextListAttr().toArray());
        Assert.assertArrayEquals(
            Arrays
                .asList(
                    new User("email", "authDomain"),
                    new User("email", "authDomain", "userId"),
                    new User("email", "authDomain", "userId", "federatedId"))
                .toArray(),
            m.getUserListAttr().toArray());
    }
}
TOP

Related Classes of org.slim3.json.test.AppEngineTypeListAttrsModelTest

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.