/* * Copyright 2007 Google Inc. * * Licensed 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 com.google.gwt.dev.javac.typemodel; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; import com.google.gwt.core.ext.typeinfo.NotFoundException; import com.google.gwt.dev.javac.typemodel.test.MyCustomList; import com.google.gwt.dev.javac.typemodel.test.MyIntegerList; import com.google.gwt.dev.javac.typemodel.test.MyList; import com.google.gwt.dev.util.log.PrintWriterTreeLogger; import java.util.ArrayList; /** * Test for {@link JRawType}. */ public class JRawTypeTest extends JDelegatingClassTypeTestBase { private final boolean logToConsole = false; private final ModuleContext moduleContext = new ModuleContext(logToConsole ? new PrintWriterTreeLogger() : TreeLogger.NULL, "com.google.gwt.dev.javac.typemodel.TypeOracleTest"); public JRawTypeTest() throws UnableToCompleteException { } @Override public void testFindNestedType() { // TODO Auto-generated method stub } @Override public void testGetEnclosingType() { // TODO Auto-generated method stub } @Override public void testGetInheritableMethods() { // TODO Auto-generated method stub } @Override public void testGetNestedType() { // TODO Auto-generated method stub } @Override public void testGetNestedTypes() { // TODO Auto-generated method stub } @Override public void testGetOverridableMethods() { // TODO Auto-generated method stub } @Override public void testGetSubtypes() throws NotFoundException { TypeOracle oracle = moduleContext.getOracle(); JClassType testType = oracle.getType(MyList.class.getName()); JGenericType genericTestType = testType.isGenericType(); assertNotNull(genericTestType); JRawType rawTestType = genericTestType.getRawType(); JClassType[] expectedTypes = new JClassType[]{ oracle.getType(MyCustomList.class.getName()).isGenericType().getRawType(), oracle.getType(MyIntegerList.class.getName())}; JClassType[] actualSubtypes = rawTestType.getSubtypes(); validateEquals(expectedTypes, actualSubtypes); } @Override public void testIsAssignableFrom() throws NotFoundException { JRawType rawType = getTestType(); assertTrue(rawType.isAssignableFrom(rawType.getBaseType())); } @Override public void testIsAssignableTo() throws NotFoundException { JRawType rawType = getTestType(); assertTrue(rawType.getBaseType().isAssignableTo(rawType)); } @Override protected Substitution getSubstitution() throws NotFoundException { return new Substitution() { public JClassType getSubstitution(JClassType type) { return type.getErasedType(); } }; } /** * Returns the RawType for {@link ArrayList}. */ @Override protected JRawType getTestType() throws NotFoundException { TypeOracle oracle = moduleContext.getOracle(); JClassType testType = oracle.getType(ArrayList.class.getName()); return testType.isGenericType().getRawType(); } }