001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.projectimport.eclipse;
043:
044: import org.netbeans.junit.NbTestCase;
045:
046: /**
047: * Tests equal and hashCode methods.
048: *
049: * @author mkrauskopf
050: */
051: public class EqualityAndHashCodeTest extends NbTestCase {
052:
053: ClassPath.Link link2;
054: ClassPath.Link theSameAsLink2;
055:
056: Workspace.Variable var2;
057: Workspace.Variable theSameAsVar2;
058:
059: public EqualityAndHashCodeTest(String testName) {
060: super (testName);
061: }
062:
063: protected void setUp() throws java.lang.Exception {
064: link2 = new ClassPath.Link();
065: link2.setLocation("/link2");
066: link2.setName("link2");
067: link2.setType(ClassPath.Link.TYPE_FILE);
068:
069: theSameAsLink2 = new ClassPath.Link();
070: theSameAsLink2.setLocation("/link2");
071: theSameAsLink2.setName("link2");
072: theSameAsLink2.setType(ClassPath.Link.TYPE_FILE);
073:
074: var2 = new Workspace.Variable();
075: var2.setLocation("/var2");
076: var2.setName("var2");
077:
078: theSameAsVar2 = new Workspace.Variable();
079: theSameAsVar2.setLocation("/var2");
080: theSameAsVar2.setName("var2");
081: }
082:
083: /** tests ClassPathContent.Link.equals() */
084: public void testLinksEquality() {
085: assertNotSame("link2 and theSameAsLink2 shouldn't be the same "
086: + "(link2 == theSameAsLink2)", link2, theSameAsLink2);
087: assertEquals("link2 should be equal to theSameAsLink2", link2,
088: theSameAsLink2);
089: theSameAsLink2.setType(ClassPath.Link.TYPE_FOLDER);
090: assertFalse("link2 should be not be equal to theSameAsLink2",
091: link2.equals(theSameAsLink2));
092: }
093:
094: /** tests ClassPathContent.Link.hashCode() */
095: public void testLinksHashCodes() {
096: assertEquals(
097: "link2 and theSameAsLink2 should generate the same hashCode",
098: link2.hashCode(), theSameAsLink2.hashCode());
099: theSameAsLink2.setType(ClassPath.Link.TYPE_FOLDER);
100: assertFalse(
101: "link2 and theSameAsLink2 shouldn't generate the same hashCode",
102: link2.hashCode() == theSameAsLink2.hashCode());
103: }
104:
105: /** tests ClassPathContent.Variable.equals() */
106: public void testVariablesEquality() {
107: assertNotSame("var2 and theSameAsVar2 shouldn't be the same "
108: + "(var2 == theSameAsVar2)", var2, theSameAsVar2);
109: assertEquals("var2 should be equal to theSameAsVar2", var2,
110: theSameAsVar2);
111: theSameAsVar2.setLocation(theSameAsVar2.getLocation() + "a");
112: assertFalse("var2 should be not be equal to theSameAsVar2",
113: var2.equals(theSameAsVar2));
114: }
115:
116: /** tests ClassPathContent.Variable.hashCode() */
117: public void testVariablesHashCodes() {
118: assertEquals(
119: "var2 and theSameAsVar2 should generate the same hashCode",
120: var2.hashCode(), theSameAsVar2.hashCode());
121: theSameAsVar2.setLocation(theSameAsVar2.getLocation() + "a");
122: assertFalse(
123: "var2 and theSameAsVar2 shouldn't generate the same hashCode",
124: var2.hashCode() == theSameAsLink2.hashCode());
125: }
126:
127: }
|