package com.googlecode.gwt.test.json; import com.google.gwt.core.client.JsonUtils; import com.googlecode.gwt.test.GwtTestTest; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class JsonUtilsTest extends GwtTestTest { @Test public void safeEval() { // Test MyJsonOverlay jso = JsonUtils.safeEval("{myString: 'json string', \"myDouble\": 3, myFloat: 3.1415, \"myBool\": true, 'myMixedArray': [\"John Locke\", \"Ben Linus\", 23, 42, true], myNumberArray: null, myObject: {myString: 'child object string', myNumberArray: [2.2, 3.3] } }"); // Then assertThat(jso.getMyString()).isEqualTo("json string"); assertThat(jso.getMyDouble()).isEqualTo(3); assertThat(jso.getMyFloat()).isEqualTo(3.1415f); assertThat(jso.getMyBool()).isTrue(); assertThat(jso.getMyMixedArray().getString(0)).isEqualTo("John Locke"); assertThat(jso.getMyMixedArray().getString(1)).isEqualTo("Ben Linus"); assertThat(jso.getMyMixedArray().getNumber(2)).isEqualTo(23); assertThat(jso.getMyMixedArray().getNumber(3)).isEqualTo(42); assertThat(jso.getMyMixedArray().getBoolean(4)).isTrue(); assertThat(jso.getMyNumberArray()).isNull(); MyJsonOverlay child = jso.getMyObject(); assertThat(child.getMyString()).isEqualTo("child object string"); assertThat(child.getMyNumberArray().get(0)).isEqualTo(2.2); assertThat(child.getMyNumberArray().get(1)).isEqualTo(3.3); } @Test public void unsafeEval() { // Test MyJsonOverlay jso = JsonUtils.unsafeEval("{myString: 'json string', \"myDouble\": 3, myFloat: 3.1415, \"myBool\": true, 'myMixedArray': [\"John Locke\", \"Ben Linus\", 23, 42, true], myNumberArray: null, myObject: {myString: 'child object string', myNumberArray: [2.2, 3.3] } }"); // Then assertThat(jso.getMyString()).isEqualTo("json string"); assertThat(jso.getMyDouble()).isEqualTo(3); assertThat(jso.getMyFloat()).isEqualTo(3.1415f); assertThat(jso.getMyBool()).isTrue(); assertThat(jso.getMyMixedArray().getString(0)).isEqualTo("John Locke"); assertThat(jso.getMyMixedArray().getString(1)).isEqualTo("Ben Linus"); assertThat(jso.getMyMixedArray().getNumber(2)).isEqualTo(23); assertThat(jso.getMyMixedArray().getNumber(3)).isEqualTo(42); assertThat(jso.getMyMixedArray().getBoolean(4)).isTrue(); assertThat(jso.getMyNumberArray()).isNull(); MyJsonOverlay child = jso.getMyObject(); assertThat(child.getMyString()).isEqualTo("child object string"); assertThat(child.getMyNumberArray().get(0)).isEqualTo(2.2); assertThat(child.getMyNumberArray().get(1)).isEqualTo(3.3); } }