content: /**
   *  Licensed to the Apache Software Foundation (ASF) under one or more
   *  contributor license agreements.  See the NOTICE file distributed with
   *  this work for additional information regarding copyright ownership.
   *  The ASF licenses this file to You 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 org.apache.aries.jmx.util;
  
  import static org.apache.aries.jmx.util.TypeUtils.fromDictionary;
  import static org.apache.aries.jmx.util.TypeUtils.fromString;
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertTrue;
  
  import java.math.BigDecimal;
  import java.math.BigInteger;
  import java.util.Dictionary;
  import java.util.Hashtable;
  import java.util.Map;
  
  import org.junit.Test;
  
  public class TypeUtilsTest {
  
      
      @Test
      public void testMapFromDictionary() throws Exception{
          
          Dictionary<String, String> dictionary = new Hashtable<String, String>();
          dictionary.put("one", "1");
          dictionary.put("two", "2");
          
          Map<String,String> map = fromDictionary(dictionary);
          assertEquals(2, map.size());
          assertEquals("1", map.get("one"));
          assertEquals("2", map.get("two"));
          
      }
      
      @Test
      public void testFromString() throws Exception {
          
          String value;
          
          value = "1";
          Integer integerValue = fromString(Integer.class, value);
          assertEquals(new Integer(1), integerValue);
          
          int intValue = fromString(Integer.TYPE, value);
          assertEquals(1, intValue);
          
          Long wrappedLongValue = fromString(Long.class, value);
          assertEquals(Long.valueOf(1), wrappedLongValue);
          
          long longValue = fromString(Long.TYPE, value);
          assertEquals(1, longValue);
          
          Double wrappedDoubleValue = fromString(Double.class, value);
          assertEquals(Double.valueOf(1), wrappedDoubleValue);
          
          double doubleValue = fromString(Double.TYPE, value);
          assertEquals(1, doubleValue, 0);
          
          Float wrappedFloatValue = fromString(Float.class, value);
          assertEquals(Float.valueOf(1), wrappedFloatValue);
          
          float floatValue = fromString(Float.TYPE, value);
          assertEquals(1, floatValue, 0);
          
          Short shortValue = fromString(Short.class, value);
          assertEquals(Short.valueOf(value), shortValue);
          
          Byte byteValue = fromString(Byte.class, value);
          assertEquals(Byte.valueOf(value), byteValue);
          
          value = "true";
          assertTrue(fromString(Boolean.class, value));
          assertTrue(fromString(Boolean.TYPE, value));
          
          char charValue = fromString(Character.TYPE, "a");
          assertEquals('a', charValue);
          Character characterValue = fromString(Character.class, "a");
          assertEquals(Character.valueOf('a'), characterValue);
          
          BigDecimal bigDecimal = fromString(BigDecimal.class, "2");
          assertEquals(new BigDecimal("2"), bigDecimal);
       
          BigInteger bigInteger = fromString(BigInteger.class, "2");
          assertEquals(new BigInteger("2"), bigInteger);
          
          String stringValue = fromString(String.class, value);
          assertEquals(stringValue, value);
          
      }
  }
  