com.appsimobile.appsii.SimpleJsonTest.java Source code

Java tutorial

Introduction

Here is the source code for com.appsimobile.appsii.SimpleJsonTest.java

Source

/*
 *
 *  * Copyright 2015. Appsi Mobile
 *  *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  *
 *  *     http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *
 */

package com.appsimobile.appsii;

import android.test.AndroidTestCase;

import org.json.JSONException;
import org.json.JSONObject;

/**
 * Created by Nick on 09/10/14.
 */
public class SimpleJsonTest extends AndroidTestCase {

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    public void testPathParsing() throws ResponseParserException {
        StringBuilder sb = new StringBuilder();

        String testData = AssetUtils.readAssetToString(getContext().getAssets(),
                "parser_test_data/parser_json_object_test_restaurant.json", sb);

        JSONObject jsonObject;
        try {
            jsonObject = new JSONObject(testData);
        } catch (JSONException e) {
            AssertionError error = new AssertionError("Unexpected error");
            error.initCause(e);
            throw error;
        }

        final SimpleJson simpleJson = new SimpleJson(jsonObject);

        SimpleJson test = simpleJson.childForPath("id");
        assertEquals(simpleJson, test);

        SimpleJson location = simpleJson.childForPath("location.lat");
        assertNotNull(location);
        assertNotSame(simpleJson, location);

        SimpleJson test2 = simpleJson.childForPath("location.long");
        assertTrue(location == test2);

        SimpleJson streetName1 = simpleJson.childForPath("location.streetname.id");
        SimpleJson streetName2 = location.childForPath("streetname.id");

        assertTrue(streetName1 == streetName2);

        assertEquals("E-sites cafe", simpleJson.getString("name"));
        assertEquals("4814", location.getString("zipcode"));
        assertEquals("4814", simpleJson.getString("location.zipcode"));
        assertEquals("NL", simpleJson.getString("location.country.code"));
        assertNull(simpleJson.getString("location.country.codexxx"));

        try {
            assertEquals("", simpleJson.getString("xxx_does_not_exist.zipcode"));
            assertTrue(false);
        } catch (ResponseParserException ignore) {
            // expected to get here
        }

        double latitude = simpleJson.getDouble("location.lat", Double.MIN_VALUE);
        assertEquals(51.5906127, latitude);

        double longitude = simpleJson.getDouble("location.long", Double.MIN_VALUE);
        assertEquals(4.7622492, longitude);

    }

}