2 * Copyright (C) 2008, Google Inc.
6 * Redistribution and use in source and binary forms, with or
7 * without modification, are permitted provided that the following
10 * - Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
13 * - Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
18 * - Neither the name of the Git Development Community nor the
19 * names of its contributors may be used to endorse or promote
20 * products derived from this software without specific prior
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
24 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
25 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
26 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
28 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
33 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 package org
.spearce
.jgit
.lib
;
40 import junit
.framework
.TestCase
;
42 public class AbbreviatedObjectIdTest
extends TestCase
{
43 public void testEmpty_FromByteArray() {
44 final AbbreviatedObjectId i
;
45 i
= AbbreviatedObjectId
.fromString(new byte[] {}, 0, 0);
47 assertEquals(0, i
.length());
48 assertFalse(i
.isComplete());
49 assertEquals("", i
.name());
52 public void testEmpty_FromString() {
53 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString("");
55 assertEquals(0, i
.length());
56 assertFalse(i
.isComplete());
57 assertEquals("", i
.name());
60 public void testFull_FromByteArray() {
61 final String s
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
62 final byte[] b
= Constants
.encodeASCII(s
);
63 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(b
, 0,
66 assertEquals(s
.length(), i
.length());
67 assertTrue(i
.isComplete());
68 assertEquals(s
, i
.name());
70 final ObjectId f
= i
.toObjectId();
72 assertEquals(ObjectId
.fromString(s
), f
);
73 assertEquals(f
.hashCode(), i
.hashCode());
76 public void testFull_FromString() {
77 final String s
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
78 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
80 assertEquals(s
.length(), i
.length());
81 assertTrue(i
.isComplete());
82 assertEquals(s
, i
.name());
84 final ObjectId f
= i
.toObjectId();
86 assertEquals(ObjectId
.fromString(s
), f
);
87 assertEquals(f
.hashCode(), i
.hashCode());
90 public void test1_FromString() {
92 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
94 assertEquals(s
.length(), i
.length());
95 assertFalse(i
.isComplete());
96 assertEquals(s
, i
.name());
97 assertNull(i
.toObjectId());
100 public void test2_FromString() {
101 final String s
= "7b";
102 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
104 assertEquals(s
.length(), i
.length());
105 assertFalse(i
.isComplete());
106 assertEquals(s
, i
.name());
107 assertNull(i
.toObjectId());
110 public void test3_FromString() {
111 final String s
= "7b6";
112 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
114 assertEquals(s
.length(), i
.length());
115 assertFalse(i
.isComplete());
116 assertEquals(s
, i
.name());
117 assertNull(i
.toObjectId());
120 public void test4_FromString() {
121 final String s
= "7b6e";
122 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
124 assertEquals(s
.length(), i
.length());
125 assertFalse(i
.isComplete());
126 assertEquals(s
, i
.name());
127 assertNull(i
.toObjectId());
130 public void test5_FromString() {
131 final String s
= "7b6e8";
132 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
134 assertEquals(s
.length(), i
.length());
135 assertFalse(i
.isComplete());
136 assertEquals(s
, i
.name());
137 assertNull(i
.toObjectId());
140 public void test6_FromString() {
141 final String s
= "7b6e80";
142 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
144 assertEquals(s
.length(), i
.length());
145 assertFalse(i
.isComplete());
146 assertEquals(s
, i
.name());
147 assertNull(i
.toObjectId());
150 public void test7_FromString() {
151 final String s
= "7b6e806";
152 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
154 assertEquals(s
.length(), i
.length());
155 assertFalse(i
.isComplete());
156 assertEquals(s
, i
.name());
157 assertNull(i
.toObjectId());
160 public void test8_FromString() {
161 final String s
= "7b6e8067";
162 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
164 assertEquals(s
.length(), i
.length());
165 assertFalse(i
.isComplete());
166 assertEquals(s
, i
.name());
167 assertNull(i
.toObjectId());
170 public void test9_FromString() {
171 final String s
= "7b6e8067e";
172 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
174 assertEquals(s
.length(), i
.length());
175 assertFalse(i
.isComplete());
176 assertEquals(s
, i
.name());
177 assertNull(i
.toObjectId());
180 public void test17_FromString() {
181 final String s
= "7b6e8067ec96acef9";
182 final AbbreviatedObjectId i
= AbbreviatedObjectId
.fromString(s
);
184 assertEquals(s
.length(), i
.length());
185 assertFalse(i
.isComplete());
186 assertEquals(s
, i
.name());
187 assertNull(i
.toObjectId());
190 public void testEquals_Short() {
191 final String s
= "7b6e8067";
192 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(s
);
193 final AbbreviatedObjectId b
= AbbreviatedObjectId
.fromString(s
);
195 assertTrue(a
.hashCode() == b
.hashCode());
196 assertTrue(a
.equals(b
));
197 assertTrue(b
.equals(a
));
200 public void testEquals_Full() {
201 final String s
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
202 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(s
);
203 final AbbreviatedObjectId b
= AbbreviatedObjectId
.fromString(s
);
205 assertTrue(a
.hashCode() == b
.hashCode());
206 assertTrue(a
.equals(b
));
207 assertTrue(b
.equals(a
));
210 public void testNotEquals_SameLength() {
211 final String sa
= "7b6e8067";
212 final String sb
= "7b6e806e";
213 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
214 final AbbreviatedObjectId b
= AbbreviatedObjectId
.fromString(sb
);
215 assertFalse(a
.equals(b
));
216 assertFalse(b
.equals(a
));
219 public void testNotEquals_DiffLength() {
220 final String sa
= "7b6e8067abcd";
221 final String sb
= "7b6e8067";
222 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
223 final AbbreviatedObjectId b
= AbbreviatedObjectId
.fromString(sb
);
224 assertFalse(a
.equals(b
));
225 assertFalse(b
.equals(a
));
228 public void testPrefixCompare_Full() {
229 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
230 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(s1
);
231 final ObjectId i1
= ObjectId
.fromString(s1
);
232 assertEquals(0, a
.prefixCompare(i1
));
233 assertTrue(i1
.startsWith(a
));
235 final String s2
= "7b6e8067ec96acef9a4184b43210d583b6d2f99b";
236 final ObjectId i2
= ObjectId
.fromString(s2
);
237 assertTrue(a
.prefixCompare(i2
) < 0);
238 assertFalse(i2
.startsWith(a
));
240 final String s3
= "7b6e8067ec96acef9a4184b43210d583b6d2f999";
241 final ObjectId i3
= ObjectId
.fromString(s3
);
242 assertTrue(a
.prefixCompare(i3
) > 0);
243 assertFalse(i3
.startsWith(a
));
246 public void testPrefixCompare_1() {
247 final String sa
= "7";
248 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
250 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
251 final ObjectId i1
= ObjectId
.fromString(s1
);
252 assertEquals(0, a
.prefixCompare(i1
));
253 assertTrue(i1
.startsWith(a
));
255 final String s2
= "8b6e8067ec96acef9a4184b43210d583b6d2f99a";
256 final ObjectId i2
= ObjectId
.fromString(s2
);
257 assertTrue(a
.prefixCompare(i2
) < 0);
258 assertFalse(i2
.startsWith(a
));
260 final String s3
= "6b6e8067ec96acef9a4184b43210d583b6d2f99a";
261 final ObjectId i3
= ObjectId
.fromString(s3
);
262 assertTrue(a
.prefixCompare(i3
) > 0);
263 assertFalse(i3
.startsWith(a
));
266 public void testPrefixCompare_7() {
267 final String sa
= "7b6e806";
268 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
270 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
271 final ObjectId i1
= ObjectId
.fromString(s1
);
272 assertEquals(0, a
.prefixCompare(i1
));
273 assertTrue(i1
.startsWith(a
));
275 final String s2
= "7b6e8167ec86acef9a4184b43210d583b6d2f99a";
276 final ObjectId i2
= ObjectId
.fromString(s2
);
277 assertTrue(a
.prefixCompare(i2
) < 0);
278 assertFalse(i2
.startsWith(a
));
280 final String s3
= "7b6e8057eca6acef9a4184b43210d583b6d2f99a";
281 final ObjectId i3
= ObjectId
.fromString(s3
);
282 assertTrue(a
.prefixCompare(i3
) > 0);
283 assertFalse(i3
.startsWith(a
));
286 public void testPrefixCompare_8() {
287 final String sa
= "7b6e8067";
288 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
290 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
291 final ObjectId i1
= ObjectId
.fromString(s1
);
292 assertEquals(0, a
.prefixCompare(i1
));
293 assertTrue(i1
.startsWith(a
));
295 final String s2
= "7b6e8167ec86acef9a4184b43210d583b6d2f99a";
296 final ObjectId i2
= ObjectId
.fromString(s2
);
297 assertTrue(a
.prefixCompare(i2
) < 0);
298 assertFalse(i2
.startsWith(a
));
300 final String s3
= "7b6e8057eca6acef9a4184b43210d583b6d2f99a";
301 final ObjectId i3
= ObjectId
.fromString(s3
);
302 assertTrue(a
.prefixCompare(i3
) > 0);
303 assertFalse(i3
.startsWith(a
));
306 public void testPrefixCompare_9() {
307 final String sa
= "7b6e8067e";
308 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
310 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
311 final ObjectId i1
= ObjectId
.fromString(s1
);
312 assertEquals(0, a
.prefixCompare(i1
));
313 assertTrue(i1
.startsWith(a
));
315 final String s2
= "7b6e8167ec86acef9a4184b43210d583b6d2f99a";
316 final ObjectId i2
= ObjectId
.fromString(s2
);
317 assertTrue(a
.prefixCompare(i2
) < 0);
318 assertFalse(i2
.startsWith(a
));
320 final String s3
= "7b6e8057eca6acef9a4184b43210d583b6d2f99a";
321 final ObjectId i3
= ObjectId
.fromString(s3
);
322 assertTrue(a
.prefixCompare(i3
) > 0);
323 assertFalse(i3
.startsWith(a
));
326 public void testPrefixCompare_17() {
327 final String sa
= "7b6e8067ec96acef9";
328 final AbbreviatedObjectId a
= AbbreviatedObjectId
.fromString(sa
);
330 final String s1
= "7b6e8067ec96acef9a4184b43210d583b6d2f99a";
331 final ObjectId i1
= ObjectId
.fromString(s1
);
332 assertEquals(0, a
.prefixCompare(i1
));
333 assertTrue(i1
.startsWith(a
));
335 final String s2
= "7b6e8067eca6acef9a4184b43210d583b6d2f99a";
336 final ObjectId i2
= ObjectId
.fromString(s2
);
337 assertTrue(a
.prefixCompare(i2
) < 0);
338 assertFalse(i2
.startsWith(a
));
340 final String s3
= "7b6e8067ec86acef9a4184b43210d583b6d2f99a";
341 final ObjectId i3
= ObjectId
.fromString(s3
);
342 assertTrue(a
.prefixCompare(i3
) > 0);
343 assertFalse(i3
.startsWith(a
));