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: package org.netbeans.modules.vmd.api.model;
042:
043: import junit.framework.Test;
044: import junit.framework.TestCase;
045: import junit.framework.TestSuite;
046:
047: import org.netbeans.modules.vmd.api.model.TypeID;
048: import org.netbeans.modules.vmd.api.model.TypeID.Kind;
049:
050: /**
051: *
052: * @author Karol Harezlak
053: */
054: public class TypeIDTest extends TestCase {
055:
056: /* Enum ID represents values of following variables
057: * PRIMITIVE_ID = 'P'
058: * ENUM_ID = 'E';
059: * COMPONENT_ID = 'C';
060: */
061: private enum ID {
062: P, E, C
063: }
064:
065: //Environment
066: private Kind kind;
067: private String string;
068: private String decode;
069: private String encode;
070: private String encodedString;
071: private String id;
072: private int dimension;
073:
074: private TypeID instance = null;
075:
076: public TypeIDTest(String testName) {
077: super (testName);
078: }
079:
080: protected void setUp() throws Exception {
081: kind = TypeID.Kind.COMPONENT;
082: encodedString = "C#Root"; // NOI18N
083: string = "#Root"; // NOI18N
084: encode = "1CC"; // NOI18N
085: id = "C"; // NOI18N
086: decode = "C"; // NOI18N
087: dimension = 1; // NOI18N
088: instance = new TypeID(kind, id, dimension);
089: }
090:
091: protected void tearDown() throws Exception {
092: }
093:
094: public static Test suite() {
095: TestSuite suite = new TestSuite(TypeIDTest.class);
096: return suite;
097: }
098:
099: /**
100: * Test of constructor, of class org.netbeans.modules.vmd.api.model.TypeID.
101: */
102: public void testTypeIDStringConstructor() {
103: System.out.println("TypeID Constructor (String string)"); // NOI18N
104:
105: TypeID _instance = new TypeID(TypeID.Kind.COMPONENT,
106: encodedString);
107: assertNotNull(_instance);
108: }
109:
110: /**
111: * Test of constructor, of class org.netbeans.modules.vmd.api.model.TypeID.
112: */
113: public void testTypeIDConstructors() {
114: System.out
115: .println("TypeID Constructors (Kind kind, String id, int dimension) and (Kind kind, String id)"); // NOI18N
116:
117: int _dimension = 2; // Counter from 0 dimension value
118: TypeID _instance = null;
119:
120: for (TypeID.Kind _kind : TypeID.Kind.values()) {
121: for (ID _id : ID.values()) {
122: for (int i = 0; i <= _dimension; i++) {
123: _instance = new TypeID(_kind, _id.toString(), i);
124: assertNotNull(_instance);
125: }
126: }
127: }
128:
129: }
130:
131: /**
132: * Test of getKind method, of class org.netbeans.modules.vmd.api.model.TypeID.
133: */
134: public void testGetKind() {
135: System.out.println("getKind"); // NOI18N
136:
137: TypeID.Kind result = instance.getKind();
138: TypeID.Kind expResult = kind;
139:
140: assertEquals(result, expResult);
141: }
142:
143: /**
144: * Test of getString method, of class org.netbeans.modules.vmd.api.model.TypeID.
145: */
146: public void testGetString() {
147: System.out.println("getString"); // NOI18N
148:
149: String result = instance.getString();
150: String expResult = decode;
151: assertEquals(expResult, result);
152: }
153:
154: /**
155: * Test of getDimension method, of class org.netbeans.modules.vmd.api.model.TypeID.
156: */
157: public void testGetDimension() {
158: System.out.println("getDimension"); // NOI18N
159:
160: int expResult = dimension;
161: int result = instance.getDimension();
162:
163: assertEquals(expResult, result);
164: }
165:
166: /**
167: * Test of getEncoded method, of class org.netbeans.modules.vmd.api.model.TypeID.
168: */
169: public void testGetEncoded() {
170: System.out.println("getEncoded"); // NOI18N
171:
172: String expResult = encode;
173: String result = instance.getEncoded();
174:
175: assertEquals(expResult, result);
176: }
177:
178: /**
179: * Test of getComponentTypeID method, of class org.netbeans.modules.vmd.api.model.TypeID.
180: */
181: public void testGetComponentType() {
182: System.out.println("getComponentTypeID"); // NOI18N
183:
184: TypeID expResult = new TypeID(kind, id, dimension - 1);
185: TypeID result = instance.getComponentType();
186:
187: assertEquals(expResult, result);
188: }
189:
190: /**
191: * Test of getArrayType method, of class org.netbeans.modules.vmd.api.model.TypeID.
192: */
193: public void testGetArrayType() {
194: System.out.println("getArrayType"); // NOI18N
195:
196: TypeID expResult = new TypeID(kind, id, dimension + 1);
197: TypeID result = instance.getArrayType();
198:
199: assertEquals(expResult, result);
200: }
201:
202: /**
203: * Test of equals method, of class org.netbeans.modules.vmd.api.model.TypeID.
204: */
205: public void testEquals() {
206: System.out.println("equals"); // NOI18N
207:
208: TypeID result = new TypeID(TypeID.Kind.COMPONENT, string);
209: TypeID expResult = new TypeID(TypeID.Kind.COMPONENT, string, 0);
210: result.equals(null);
211:
212: assertTrue(result.equals(expResult));
213: }
214:
215: /**
216: * Test of hashCode method, of class org.netbeans.modules.vmd.api.model.TypeID.
217: */
218: public void testHashCode() {
219: System.out.println("hashCode"); // NOI18N
220:
221: TypeID result = new TypeID(TypeID.Kind.COMPONENT, string);
222: TypeID expResult = new TypeID(TypeID.Kind.COMPONENT, string, 0);
223:
224: assertTrue(result.hashCode() == expResult.hashCode());
225: }
226:
227: /**
228: * Test of toString method, of class org.netbeans.modules.vmd.api.model.TypeID.
229: */
230: public void testToString() {
231: System.out.println("toString"); // NOI18N
232:
233: TypeID result = new TypeID(TypeID.Kind.COMPONENT, string);
234: TypeID expResult = new TypeID(TypeID.Kind.COMPONENT, string, 0);
235:
236: assertTrue(result.getString().equals(expResult.getString()));
237: }
238:
239: }
|