001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.harmony.pack200.tests.bytecode;
018:
019: import junit.framework.TestCase;
020:
021: import org.apache.harmony.pack200.bytecode.CPDouble;
022: import org.apache.harmony.pack200.bytecode.CPFloat;
023: import org.apache.harmony.pack200.bytecode.CPInteger;
024: import org.apache.harmony.pack200.bytecode.CPLong;
025: import org.apache.harmony.pack200.bytecode.CPMember;
026: import org.apache.harmony.pack200.bytecode.CPString;
027: import org.apache.harmony.pack200.bytecode.CPUTF8;
028: import org.apache.harmony.pack200.bytecode.ClassConstantPool;
029: import org.apache.harmony.pack200.bytecode.SourceFileAttribute;
030:
031: public class ClassFileEntryTest extends TestCase {
032: public void testUTF8() {
033: CPUTF8 u1 = new CPUTF8(
034: new String("thing"), ClassConstantPool.DOMAIN_UNDEFINED); //$NON-NLS-1$
035: CPUTF8 u2 = new CPUTF8(
036: new String("thing"), ClassConstantPool.DOMAIN_UNDEFINED); //$NON-NLS-1$
037: CPUTF8 u3 = new CPUTF8(
038: new String("otherthing"), ClassConstantPool.DOMAIN_UNDEFINED); //$NON-NLS-1$
039: checkEquality(u1, u2, "thing", u3);
040: }
041:
042: private void checkEquality(Object equal1, Object equal2,
043: String toString, Object unequal) {
044: assertEquals(equal1, equal2);
045: assertEquals(equal1.hashCode(), equal2.hashCode());
046: assertTrue(equal1.toString().indexOf(toString) >= 0);
047: assertFalse(equal1.equals(unequal));
048: assertFalse(equal2.equals(unequal));
049: assertFalse(unequal.equals(equal1));
050: assertFalse(unequal.equals(equal2));
051: }
052:
053: public void testSourceAttribute() {
054: SourceFileAttribute sfa1 = new SourceFileAttribute(new String(
055: "Thing.java")); //$NON-NLS-1$
056: SourceFileAttribute sfa2 = new SourceFileAttribute(new String(
057: "Thing.java")); //$NON-NLS-1$
058: SourceFileAttribute sfa3 = new SourceFileAttribute(new String(
059: "OtherThing.java")); //$NON-NLS-1$
060: checkEquality(sfa1, sfa2, "Thing.java", sfa3); //$NON-NLS-1$
061: }
062:
063: public void testCPInteger() {
064: CPInteger cp1 = new CPInteger(new Integer(3));
065: CPInteger cp2 = new CPInteger(new Integer(3));
066: CPInteger cp3 = new CPInteger(new Integer(5));
067: checkEquality(cp1, cp2, "3", cp3); //$NON-NLS-1$
068: }
069:
070: public void testCPLong() {
071: CPLong cp1 = new CPLong(new Long(3));
072: CPLong cp2 = new CPLong(new Long(3));
073: CPLong cp3 = new CPLong(new Long(5));
074: checkEquality(cp1, cp2, "3", cp3); //$NON-NLS-1$
075: }
076:
077: public void testCPDouble() {
078: CPDouble cp1 = new CPDouble(new Double(3));
079: CPDouble cp2 = new CPDouble(new Double(3));
080: CPDouble cp3 = new CPDouble(new Double(5));
081: checkEquality(cp1, cp2, "3", cp3); //$NON-NLS-1$
082: }
083:
084: public void testCPFloat() {
085: CPFloat cp1 = new CPFloat(new Float(3));
086: CPFloat cp2 = new CPFloat(new Float(3));
087: CPFloat cp3 = new CPFloat(new Float(5));
088: checkEquality(cp1, cp2, "3", cp3); //$NON-NLS-1$
089: }
090:
091: public void testCPString() {
092: CPString cp1 = new CPString(new String("3"));
093: CPString cp2 = new CPString(new String("3"));
094: CPString cp3 = new CPString(new String("5"));
095: checkEquality(cp1, cp2, "3", cp3); //$NON-NLS-1$
096: }
097:
098: public void testCPField() {
099: CPMember cp1 = new CPMember("Name:I", 0, null);
100: CPMember cp2 = new CPMember("Name:I", 0, null);
101: CPMember cp3 = new CPMember("Name:Z", 0, null);
102: CPMember cp4 = new CPMember("GName:I", 0, null);
103: checkEquality(cp1, cp2, "Name", cp3); //$NON-NLS-1$
104: checkEquality(cp1, cp2, "I", cp4); //$NON-NLS-1$
105: }
106:
107: }
|