blob: b1afeffbcaa74ef365bebf2a6c4ca67210df08d5 [file] [log] [blame]
/*******************************************************************************
* 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 v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* 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"
);
}
}