2 * Copyright (C) 2009, 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
.revwalk
;
40 import org
.spearce
.jgit
.lib
.AnyObjectId
;
41 import org
.spearce
.jgit
.lib
.Constants
;
43 public class RevObjectTest
extends RevWalkTestCase
{
44 public void testId() throws Exception
{
45 final RevCommit a
= commit();
46 assertSame(a
, a
.getId());
49 public void testEqualsIsIdentity() throws Exception
{
50 final RevCommit a1
= commit();
51 final RevCommit b1
= commit();
53 assertTrue(a1
.equals(a1
));
54 assertTrue(a1
.equals((Object
) a1
));
55 assertFalse(a1
.equals(b1
));
57 assertFalse(a1
.equals(a1
.copy()));
58 assertFalse(a1
.equals((Object
) a1
.copy()));
59 assertFalse(a1
.equals(""));
61 final RevWalk rw2
= new RevWalk(db
);
62 final RevCommit a2
= rw2
.parseCommit(a1
);
63 final RevCommit b2
= rw2
.parseCommit(b1
);
64 assertNotSame(a1
, a2
);
65 assertNotSame(b1
, b2
);
67 assertFalse(a1
.equals(a2
));
68 assertFalse(b1
.equals(b2
));
70 assertEquals(a1
.hashCode(), a2
.hashCode());
71 assertEquals(b1
.hashCode(), b2
.hashCode());
73 assertTrue(AnyObjectId
.equals(a1
, a2
));
74 assertTrue(AnyObjectId
.equals(b1
, b2
));
77 public void testRevObjectTypes() throws Exception
{
78 assertEquals(Constants
.OBJ_TREE
, emptyTree
.getType());
79 assertEquals(Constants
.OBJ_COMMIT
, commit().getType());
80 assertEquals(Constants
.OBJ_BLOB
, blob("").getType());
81 assertEquals(Constants
.OBJ_TAG
, tag("emptyTree", emptyTree
).getType());
84 public void testHasRevFlag() throws Exception
{
85 final RevCommit a
= commit();
86 assertFalse(a
.has(RevFlag
.UNINTERESTING
));
87 a
.flags
|= RevWalk
.UNINTERESTING
;
88 assertTrue(a
.has(RevFlag
.UNINTERESTING
));
91 public void testHasAnyFlag() throws Exception
{
92 final RevCommit a
= commit();
93 final RevFlag flag1
= rw
.newFlag("flag1");
94 final RevFlag flag2
= rw
.newFlag("flag2");
95 final RevFlagSet s
= new RevFlagSet();
99 assertFalse(a
.hasAny(s
));
100 a
.flags
|= flag1
.mask
;
101 assertTrue(a
.hasAny(s
));
104 public void testHasAllFlag() throws Exception
{
105 final RevCommit a
= commit();
106 final RevFlag flag1
= rw
.newFlag("flag1");
107 final RevFlag flag2
= rw
.newFlag("flag2");
108 final RevFlagSet s
= new RevFlagSet();
112 assertFalse(a
.hasAll(s
));
113 a
.flags
|= flag1
.mask
;
114 assertFalse(a
.hasAll(s
));
115 a
.flags
|= flag2
.mask
;
116 assertTrue(a
.hasAll(s
));
119 public void testAddRevFlag() throws Exception
{
120 final RevCommit a
= commit();
121 final RevFlag flag1
= rw
.newFlag("flag1");
122 final RevFlag flag2
= rw
.newFlag("flag2");
123 assertEquals(0, a
.flags
);
126 assertEquals(flag1
.mask
, a
.flags
);
129 assertEquals(flag1
.mask
| flag2
.mask
, a
.flags
);
132 public void testAddRevFlagSet() throws Exception
{
133 final RevCommit a
= commit();
134 final RevFlag flag1
= rw
.newFlag("flag1");
135 final RevFlag flag2
= rw
.newFlag("flag2");
136 final RevFlagSet s
= new RevFlagSet();
140 assertEquals(0, a
.flags
);
143 assertEquals(flag1
.mask
| flag2
.mask
, a
.flags
);
146 public void testRemoveRevFlag() throws Exception
{
147 final RevCommit a
= commit();
148 final RevFlag flag1
= rw
.newFlag("flag1");
149 final RevFlag flag2
= rw
.newFlag("flag2");
152 assertEquals(flag1
.mask
| flag2
.mask
, a
.flags
);
154 assertEquals(flag1
.mask
, a
.flags
);
157 public void testRemoveRevFlagSet() throws Exception
{
158 final RevCommit a
= commit();
159 final RevFlag flag1
= rw
.newFlag("flag1");
160 final RevFlag flag2
= rw
.newFlag("flag2");
161 final RevFlag flag3
= rw
.newFlag("flag3");
162 final RevFlagSet s
= new RevFlagSet();
167 assertEquals(flag1
.mask
| flag2
.mask
| flag3
.mask
, a
.flags
);
169 assertEquals(flag3
.mask
, a
.flags
);