156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com/* 256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * Copyright (C) 2010 Google Inc. 356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * 456493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 556493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * you may not use this file except in compliance with the License. 656493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * You may obtain a copy of the License at 756493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * 856493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * http://www.apache.org/licenses/LICENSE-2.0 956493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * 1056493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * Unless required by applicable law or agreed to in writing, software 1156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * distributed under the License is distributed on an "AS IS" BASIS, 1256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * See the License for the specific language governing permissions and 1456493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * limitations under the License. 1556493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com */ 1656493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 1756493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.compackage com.android.i18n.addressinput; 1856493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 1986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.comimport junit.framework.TestCase; 2086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 2156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.comimport org.json.JSONArray; 2256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.comimport org.json.JSONException; 2356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 24b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.comimport java.util.Arrays; 25b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.comimport java.util.HashSet; 26b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.comimport java.util.Set; 27b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com 2856493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com/** 2956493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com * Unit test for {@link JsoMap}. 3056493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com */ 3156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.compublic class JsoMapTest extends TestCase { 3256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 3386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com private static final String VALID_JSON = "{\"a\":\"b\",\"c\":1,\"d\":{\"e\":\"f\"}}"; 3486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com private static final String INVALID_JSON = "!"; 3586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 3686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testBuildJsoMap() throws Exception { 3786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNotNull(JsoMap.buildJsoMap(VALID_JSON)); 3856493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 3986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 4086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap.buildJsoMap(INVALID_JSON); 4186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected JSONException."); 4286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (JSONException e) { 4386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 4486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 4586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 4656493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 4786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testCreateEmptyJsoMap() throws Exception { 4886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNotNull(JsoMap.createEmptyJsoMap()); 4956493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 5086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 5186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testDelKey() throws Exception { 5286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 5386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 5486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("b", map.get("a")); 5586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("a"); 5686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNull(map.get("a")); 5786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 5886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("b"); 5986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("c"); 6086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("d"); 6156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 6256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 6386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testGet() throws Exception { 6486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 6586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("b", map.get("a")); 6686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNull(map.get("b")); 6786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 6886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 6986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.get("c"); 7086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected IllegalArgumentException."); 7186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (IllegalArgumentException e) { 7286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 7386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 7486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 7586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 7686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.get("d"); 7786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected ClassCastException."); 7886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (ClassCastException e) { 7986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 8086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 8156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 8256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 8386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testGetInt() throws Exception { 8486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 8586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 8686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 8786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.getInt("a"); 8886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected RuntimeException."); 8986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (RuntimeException e) { 9086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 9186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 9286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 9386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(-1, map.getInt("b")); 9486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(1, map.getInt("c")); 9586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 9686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 9786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.getInt("d"); 9886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected RuntimeException."); 9986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (RuntimeException e) { 10086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 10186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 10286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 10356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 10486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testGetKeys() throws Exception { 10586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 10686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JSONArray keys = map.getKeys(); 10786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNotNull(keys); 10886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(3, keys.length()); 109b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com Set<String> keySet = new HashSet<String>(keys.length()); 110b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com for (int i = 0; i < keys.length(); i++) { 111b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com keySet.add(keys.getString(i)); 112b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com } 113b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com assertEquals(new HashSet<String>(Arrays.asList("a", "c", "d")), keySet); 11456493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 11556493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 11686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testGetObj() throws Exception { 11786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 11886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 11986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 12086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.getObj("a"); 12186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected ClassCastException."); 12286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (ClassCastException e) { 12386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 12486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 12586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 12686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNull(map.getObj("b")); 12756493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 12886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 12986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.getObj("c"); 13086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected IllegalArgumentException."); 13186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (IllegalArgumentException e) { 13286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 13386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 13486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 13586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap obj = map.getObj("d"); 13686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertNotNull(obj); 13786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("f", obj.get("e")); 13856493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 13986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 14086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testContainsKey() throws Exception { 14186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 14286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(map.containsKey("a")); 14386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertFalse(map.containsKey("b")); 14486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(map.containsKey("c")); 14586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertTrue(map.containsKey("d")); 14656493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 14756493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 14886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testMergeData() throws Exception { 14986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap mapA = JsoMap.createEmptyJsoMap(); 15086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap mapB = JsoMap.createEmptyJsoMap(); 15186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 15286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com mapA.putInt("a", 1); 15386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com mapA.putInt("b", 2); 15456493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 15586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com mapB.putInt("b", 3); 15686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com mapB.putInt("c", 4); 15786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 15886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com mapA.mergeData(mapB); 15986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(1, mapA.getInt("a")); 16086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(2, mapA.getInt("b")); 16186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(4, mapA.getInt("c")); 16256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 16356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 16486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testPut() throws Exception { 16586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.createEmptyJsoMap(); 16686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 16786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.put("a", "b"); 16886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("b", map.get("a")); 16986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 17086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.put("a", "c"); 17186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("c", map.get("a")); 17256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 17356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 17486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testPutInt() throws Exception { 17586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.createEmptyJsoMap(); 17686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 17786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.putInt("a", 1); 17886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(1, map.getInt("a")); 17986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 18086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.putInt("a", 2); 18186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(2, map.getInt("a")); 18256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 18356493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 18486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testPutObj() throws Exception { 18586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.createEmptyJsoMap(); 18686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap obj = JsoMap.createEmptyJsoMap(); 18786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 18886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com obj.putInt("a", 1); 18986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.putObj("b", obj); 19086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(obj.toString(), map.getObj("b").toString()); 19186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 19286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com obj.putInt("a", 2); 19386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.putObj("b", obj); 19486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals(obj.toString(), map.getObj("b").toString()); 19556493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 19656493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 19786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testString() throws Exception { 19886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 19986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 20086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 2011643a6ed5686b85b22bb2a23b70cb801f59fff85roubert@google.com // This should fail on the integer "c" or the map "d". 20286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.string(); 20386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected IllegalArgumentException."); 20486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (IllegalArgumentException e) { 20586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 2061643a6ed5686b85b22bb2a23b70cb801f59fff85roubert@google.com } catch (ClassCastException e) { 2071643a6ed5686b85b22bb2a23b70cb801f59fff85roubert@google.com // Expected. 20886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 20986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 21086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("c"); 21186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 21286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // This should fail on the object "d". 21386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.string(); 21486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected ClassCastException."); 21586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (ClassCastException e) { 21686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 21786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 21886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 21986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("d"); 22086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("JsoMap[\n(a:b)\n]", map.string()); 22156493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com } 22256493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com 22386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com public void testMap() throws Exception { 22486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com JsoMap map = JsoMap.buildJsoMap(VALID_JSON); 22586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 226b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com // This should fail on the string "a" or the integer "c". 22786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.map(); 22886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected ClassCastException."); 22986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (ClassCastException e) { 23086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 231b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com } catch (IllegalArgumentException e) { 232b6870ba2907bec2cabfb982e37290b79a4713780roubert@google.com // Expected. 23386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 23486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 23586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("a"); 23686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com try { 23786eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // This should fail on the integer "c". 23886eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.map(); 23986eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com fail("Expected IllegalArgumentException."); 24086eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } catch (IllegalArgumentException e) { 24186eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com // Expected. 24286eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 24386eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com 24486eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com map.delKey("c"); 24586eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com assertEquals("JsoMap[\n(d:JsoMap[\n(e:f)\n])\n]", map.map()); 24686eb8dc8d730348b3e9e7aa50a02781b5b7db3d1lararennie@google.com } 24756493344f6b48d9ae2a2fea8e2a953f33b1e00d8roubert@google.com} 248