| /******************************************************************************* |
| * Copyright (c) 2005, 2009 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.jsdt.core.tests.model; |
| |
| import org.eclipse.wst.jsdt.core.BindingKey; |
| |
| import junit.framework.Test; |
| |
| public class BindingKeyTests extends AbstractJavaModelTests { |
| |
| static { |
| } |
| |
| public BindingKeyTests(String name) { |
| super(name); |
| } |
| |
| public static Test suite() { |
| return buildModelTestSuite(BindingKeyTests.class); |
| } |
| |
| protected void assertBindingKeyEquals(String expected, String key) { |
| if (!(expected.equals(key))) |
| System.out.println(displayString(key, 3) + ","); |
| assertEquals(expected, key); |
| } |
| |
| protected void assertBindingKeySignatureEquals(String expected, String key) { |
| BindingKey bindingKey = new BindingKey(key); |
| String signature = bindingKey.toSignature(); |
| if (!(expected.equals(signature))) |
| System.out.println(displayString(signature, 3) + ","); |
| assertEquals(expected, signature); |
| } |
| |
| /* |
| * Package. |
| */ |
| public void test001() { |
| assertBindingKeySignatureEquals( |
| "p", |
| "p" |
| ); |
| } |
| |
| /* |
| * Top level type in non default package. |
| */ |
| public void test002() { |
| assertBindingKeySignatureEquals( |
| "Lp.X;", |
| "Lp/X;" |
| ); |
| } |
| |
| /* |
| * Top level type in default package. |
| */ |
| public void test003() { |
| assertBindingKeySignatureEquals( |
| "LClazz;", |
| "LClazz;" |
| ); |
| } |
| |
| /* |
| * Member type |
| */ |
| public void test004() { |
| assertBindingKeySignatureEquals( |
| "Lp.X$Member;", |
| "Lp/X$Member;" |
| ); |
| } |
| |
| /* |
| * Member type (2 levels deep) |
| */ |
| public void test005() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$Member1$Member2;", |
| "Lp1/X$Member1$Member2;" |
| ); |
| } |
| |
| /* |
| * Anonymous type |
| */ |
| public void test006() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$1;", |
| "Lp1/X$1;" |
| ); |
| } |
| |
| /* |
| * Local type |
| */ |
| public void test007() { |
| assertBindingKeySignatureEquals( |
| "Lp1.X$1$Y;", |
| "Lp1/X$1$Y;" |
| ); |
| } |
| |
| /* |
| * Array type |
| */ |
| public void test008() { |
| assertBindingKeySignatureEquals( |
| "[Lp1.X;", |
| "[Lp1/X;" |
| ); |
| } |
| |
| /* |
| * Secondary type |
| */ |
| public void test012() { |
| assertBindingKeySignatureEquals( |
| "Lp1.Secondary;", |
| "Lp1/X~Secondary;" |
| ); |
| } |
| |
| /* |
| * Anonymous in a secondary type |
| */ |
| public void test013() { |
| assertBindingKeySignatureEquals( |
| "Lp1.Secondary$1;", |
| "Lp1/X~Secondary$1;" |
| ); |
| } |
| |
| /* |
| * Method |
| * (regression test for bug 85811 BindingKey.toSignature should return method signature for methods) |
| */ |
| public void test014() { |
| assertBindingKeySignatureEquals( |
| "(Ljava.lang.String;I)Z", |
| "Lp1/X;.foo(Ljava/lang/String;I)Z" |
| ); |
| } |
| |
| /* |
| * Create a type binding key from a fully qualified name |
| */ |
| public void test015() { |
| String key = BindingKey.createTypeBindingKey("java.lang.Object"); |
| assertBindingKeyEquals( |
| "Ljava/lang/Object;", |
| key); |
| } |
| |
| /* |
| * Create a type binding key from an array type name |
| */ |
| public void test017() { |
| String key = BindingKey.createTypeBindingKey("Boolean[]"); |
| assertBindingKeyEquals( |
| "[LBoolean;", |
| key); |
| } |
| |
| /* |
| * Create an array type binding key |
| */ |
| public void test020() { |
| String key = BindingKey.createArrayTypeBindingKey("Ljava/lang/Object;", 1); |
| assertBindingKeyEquals( |
| "[Ljava/lang/Object;", |
| key); |
| } |
| |
| /* |
| * Create an array type binding key |
| */ |
| public void test021() { |
| String key = BindingKey.createArrayTypeBindingKey("I", 2); |
| assertBindingKeyEquals( |
| "[[I", |
| key); |
| } |
| |
| /* |
| * Method starting with an upper case corresponding to a primitive type |
| * (regression test for bug 94398 Error attempting to find References) |
| */ |
| public void test034() { |
| assertBindingKeySignatureEquals( |
| "(Ljava.lang.String;I)Z", |
| "Lp1/X;.Set(Ljava/lang/String;I)Z" |
| ); |
| } |
| |
| /* |
| * Field |
| * (regression test for bug 87362 BindingKey#internalToSignature() should return the field's type signature) |
| */ |
| public void test037() { |
| assertBindingKeySignatureEquals( |
| "Ljava.lang.String;", |
| "Lp/X;.foo)Ljava/lang/String;" |
| ); |
| } |
| |
| /* |
| * Base type |
| * (regression test for bug 97187 [rendering] Shows Single Char for primitve Types) |
| */ |
| public void test039() { |
| assertBindingKeySignatureEquals( |
| "Z", |
| "Z" |
| ); |
| } |
| } |