1*ac2a7c1bSSadaf Ebrahimi /** 2*ac2a7c1bSSadaf Ebrahimi * Copyright (c) 2008, SnakeYAML 3*ac2a7c1bSSadaf Ebrahimi * 4*ac2a7c1bSSadaf Ebrahimi * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5*ac2a7c1bSSadaf Ebrahimi * in compliance with the License. You may obtain a copy of the License at 6*ac2a7c1bSSadaf Ebrahimi * 7*ac2a7c1bSSadaf Ebrahimi * http://www.apache.org/licenses/LICENSE-2.0 8*ac2a7c1bSSadaf Ebrahimi * 9*ac2a7c1bSSadaf Ebrahimi * Unless required by applicable law or agreed to in writing, software distributed under the License 10*ac2a7c1bSSadaf Ebrahimi * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11*ac2a7c1bSSadaf Ebrahimi * or implied. See the License for the specific language governing permissions and limitations under 12*ac2a7c1bSSadaf Ebrahimi * the License. 13*ac2a7c1bSSadaf Ebrahimi */ 14*ac2a7c1bSSadaf Ebrahimi package examples; 15*ac2a7c1bSSadaf Ebrahimi 16*ac2a7c1bSSadaf Ebrahimi import java.util.Map; 17*ac2a7c1bSSadaf Ebrahimi import java.util.TreeMap; 18*ac2a7c1bSSadaf Ebrahimi import junit.framework.TestCase; 19*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.Yaml; 20*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.constructor.Constructor; 21*ac2a7c1bSSadaf Ebrahimi 22*ac2a7c1bSSadaf Ebrahimi public class CustomMapExampleTest extends TestCase { 23*ac2a7c1bSSadaf Ebrahimi testMap()24*ac2a7c1bSSadaf Ebrahimi public void testMap() { 25*ac2a7c1bSSadaf Ebrahimi Yaml yaml = new Yaml(new CustomConstructor()); 26*ac2a7c1bSSadaf Ebrahimi @SuppressWarnings("unchecked") 27*ac2a7c1bSSadaf Ebrahimi Map<Integer, String> data = yaml.load("{2: '222', 1: '111', 3: '333'}"); 28*ac2a7c1bSSadaf Ebrahimi assertTrue(data instanceof TreeMap); 29*ac2a7c1bSSadaf Ebrahimi Object[] keys = data.keySet().toArray(); 30*ac2a7c1bSSadaf Ebrahimi // must be sorted 31*ac2a7c1bSSadaf Ebrahimi assertEquals(Integer.valueOf(1), keys[0]); 32*ac2a7c1bSSadaf Ebrahimi assertEquals(Integer.valueOf(2), keys[1]); 33*ac2a7c1bSSadaf Ebrahimi assertEquals(Integer.valueOf(3), keys[2]); 34*ac2a7c1bSSadaf Ebrahimi } 35*ac2a7c1bSSadaf Ebrahimi 36*ac2a7c1bSSadaf Ebrahimi class CustomConstructor extends Constructor { 37*ac2a7c1bSSadaf Ebrahimi 38*ac2a7c1bSSadaf Ebrahimi @Override createDefaultMap(int initSize)39*ac2a7c1bSSadaf Ebrahimi protected Map<Object, Object> createDefaultMap(int initSize) { 40*ac2a7c1bSSadaf Ebrahimi return new TreeMap<Object, Object>(); 41*ac2a7c1bSSadaf Ebrahimi } 42*ac2a7c1bSSadaf Ebrahimi } 43*ac2a7c1bSSadaf Ebrahimi } 44