|  | // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | package com.android.tools.r8.dex; | 
|  |  | 
|  | import static org.junit.Assert.assertEquals; | 
|  | import static org.junit.Assert.assertSame; | 
|  |  | 
|  | import com.android.tools.r8.graph.DexItem; | 
|  | import com.android.tools.r8.graph.DexItemFactory; | 
|  | import com.android.tools.r8.graph.DexString; | 
|  | import com.android.tools.r8.graph.DexType; | 
|  | import org.junit.Test; | 
|  |  | 
|  | public class DexItemFactoryTest { | 
|  |  | 
|  | @Test | 
|  | public void commonItems() { | 
|  | DexItemFactory factory = new DexItemFactory(); | 
|  |  | 
|  | Object[] data = new Object[]{ | 
|  | "B", factory.byteDescriptor, factory.byteType, | 
|  | "C", factory.charDescriptor, factory.charType, | 
|  | "D", factory.doubleDescriptor, factory.doubleType, | 
|  | "F", factory.floatDescriptor, factory.floatType, | 
|  | "I", factory.intDescriptor, factory.intType, | 
|  | "J", factory.longDescriptor, factory.longType, | 
|  | "S", factory.shortDescriptor, factory.shortType, | 
|  | "V", factory.voidDescriptor, factory.voidType, | 
|  | "Z", factory.booleanDescriptor, factory.booleanType, | 
|  | "Ljava/lang/String;", factory.stringDescriptor, factory.stringType, | 
|  | "Ljava/lang/Object;", factory.objectDescriptor, factory.objectType, | 
|  | }; | 
|  |  | 
|  | for (int i = 0; i < data.length; i += 3) { | 
|  | DexString string1 = factory.createString((String) data[i]); | 
|  | DexString string2 = factory.createString((String) data[i]); | 
|  | DexItem type1 = factory.createType(string1); | 
|  | DexItem type2 = factory.createType(string2); | 
|  | DexItem expectedDexString = (DexString) data[i + 1]; | 
|  | DexItem expectedDexType = (DexType) data[i + 2]; | 
|  |  | 
|  | assertSame(expectedDexString, string1); | 
|  | assertSame(expectedDexString, string2); | 
|  | assertSame(expectedDexType, type1); | 
|  | assertSame(expectedDexType, type2); | 
|  | } | 
|  | } | 
|  |  | 
|  | @Test | 
|  | public void getPrimitiveTypeName() { | 
|  | DexItemFactory factory = new DexItemFactory(); | 
|  | assertEquals("boolean", factory.booleanType.getName()); | 
|  | assertEquals("byte", factory.byteType.getName()); | 
|  | assertEquals("short", factory.shortType.getName()); | 
|  | assertEquals("char", factory.charType.getName()); | 
|  | assertEquals("int", factory.intType.getName()); | 
|  | assertEquals("float", factory.floatType.getName()); | 
|  | assertEquals("long", factory.longType.getName()); | 
|  | assertEquals("double", factory.doubleType.getName()); | 
|  | } | 
|  | } |