/******************************************************************************* * Copyright (c) 2002, 2005 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.jdt.debug.tests.eval; import org.eclipse.debug.core.model.IValue; import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue; public class StringPlusOpTests extends Tests { public StringPlusOpTests(String arg) { super(arg); } protected void init() throws Exception { initializeFrame("EvalSimpleTests",15,1); } protected void end() throws Exception { destroyFrame(); } // java.lang.String + {byte, char, short, int, long, java.lang.String, null} public void testStringPlusByte() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yByte); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus byte : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus byte : wrong result : ", xStringValue + yByteValue, stringValue); value = eval(yString + plusOp + xByte); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus byte : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus byte : wrong result : ", yStringValue + xByteValue, stringValue); } finally { end(); } } public void testStringPlusChar() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yChar); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus char : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus char : wrong result : ", xStringValue + yCharValue, stringValue); value = eval(yString + plusOp + xChar); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus char : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus char : wrong result : ", yStringValue + xCharValue, stringValue); } finally { end(); } } public void testStringPlusShort() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yShort); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus short : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus short : wrong result : ", xStringValue + yShortValue, stringValue); value = eval(yString + plusOp + xShort); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus short : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus short : wrong result : ", yStringValue + xShortValue, stringValue); } finally { end(); } } public void testStringPlusInt() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yInt); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus int : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus int : wrong result : ", xStringValue + yIntValue, stringValue); value = eval(yString + plusOp + xInt); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus int : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus int : wrong result : ", yStringValue + xIntValue, stringValue); } finally { end(); } } public void testStringPlusLong() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yLong); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus long : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus long : wrong result : ", xStringValue + yLongValue, stringValue); value = eval(yString + plusOp + xLong); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus long : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus long : wrong result : ", yStringValue + xLongValue, stringValue); } finally { end(); } } public void testStringPlusDouble() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yDouble); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus double : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus double : wrong result : ", xStringValue + yDoubleValue, stringValue); value = eval(yString + plusOp + xDouble); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus double : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus double : wrong result : ", yStringValue + xDoubleValue, stringValue); } finally { end(); } } public void testStringPlusBoolean() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yBoolean); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus boolean : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus boolean : wrong result : ", xStringValue + yBooleanValue, stringValue); value = eval(yString + plusOp + xBoolean); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus boolean : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus boolean : wrong result : ", yStringValue + xBooleanValue, stringValue); } finally { end(); } } public void testStringPlusString() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yString); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus java.lang.String : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus java.lang.String : wrong result : ", xStringValue + yStringValue, stringValue); value = eval(yString + plusOp + xString); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus java.lang.String : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus java.lang.String : wrong result : ", yStringValue + xStringValue, stringValue); } finally { end(); } } public void testStringPlusNull() throws Throwable { try { init(); IValue value = eval(xString + plusOp + yNull); String typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus null : wrong type : ", "java.lang.String", typeName); String stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus null : wrong result : ", xStringValue + yNullValue, stringValue); value = eval(yString + plusOp + xNull); typeName = value.getReferenceTypeName(); assertEquals("java.lang.String plus null : wrong type : ", "java.lang.String", typeName); stringValue = ((JDIObjectValue)value).getValueString(); assertEquals("java.lang.String plus null : wrong result : ", yStringValue + xNullValue, stringValue); } finally { end(); } } }