View Javadoc
1   /*
2    * Copyright (C) 2022, Google Inc. and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  
11  package org.eclipse.jgit.diff;
12  
13  import static org.junit.Assert.assertEquals;
14  
15  import org.eclipse.jgit.diff.DiffEntry.ChangeType;
16  import org.eclipse.jgit.junit.RepositoryTestCase;
17  import org.eclipse.jgit.junit.TestRepository;
18  import org.eclipse.jgit.lib.AbbreviatedObjectId;
19  import org.eclipse.jgit.lib.FileMode;
20  import org.eclipse.jgit.lib.ObjectId;
21  import org.eclipse.jgit.lib.Repository;
22  import org.junit.Before;
23  
24  public abstract class AbstractRenameDetectionTestCase
25  		extends RepositoryTestCase {
26  
27  	protected static final String PATH_A = "src/A";
28  
29  	protected static final String PATH_B = "src/B";
30  
31  	protected static final String PATH_H = "src/H";
32  
33  	protected static final String PATH_Q = "src/Q";
34  
35  	protected TestRepository<Repository> testDb;
36  
37  	@Override
38  	@Before
39  	public void setUp() throws Exception {
40  		super.setUp();
41  		testDb = new TestRepository<>(db);
42  	}
43  
44  	protected ObjectId blob(String content) throws Exception {
45  		return testDb.blob(content).copy();
46  	}
47  
48  	protected static void assertRename(DiffEntry o, DiffEntry n, int score,
49  			DiffEntry rename) {
50  		assertEquals(ChangeType.RENAME, rename.getChangeType());
51  
52  		assertEquals(o.getOldPath(), rename.getOldPath());
53  		assertEquals(n.getNewPath(), rename.getNewPath());
54  
55  		assertEquals(o.getOldMode(), rename.getOldMode());
56  		assertEquals(n.getNewMode(), rename.getNewMode());
57  
58  		assertEquals(o.getOldId(), rename.getOldId());
59  		assertEquals(n.getNewId(), rename.getNewId());
60  
61  		assertEquals(score, rename.getScore());
62  	}
63  
64  	protected static void assertCopy(DiffEntry o, DiffEntry n, int score,
65  			DiffEntry copy) {
66  		assertEquals(ChangeType.COPY, copy.getChangeType());
67  
68  		assertEquals(o.getOldPath(), copy.getOldPath());
69  		assertEquals(n.getNewPath(), copy.getNewPath());
70  
71  		assertEquals(o.getOldMode(), copy.getOldMode());
72  		assertEquals(n.getNewMode(), copy.getNewMode());
73  
74  		assertEquals(o.getOldId(), copy.getOldId());
75  		assertEquals(n.getNewId(), copy.getNewId());
76  
77  		assertEquals(score, copy.getScore());
78  	}
79  
80  	protected static void assertAdd(String newName, ObjectId newId,
81  			FileMode newMode, DiffEntry add) {
82  		assertEquals(DiffEntry.DEV_NULL, add.oldPath);
83  		assertEquals(DiffEntry.A_ZERO, add.oldId);
84  		assertEquals(FileMode.MISSING, add.oldMode);
85  		assertEquals(ChangeType.ADD, add.changeType);
86  		assertEquals(newName, add.newPath);
87  		assertEquals(AbbreviatedObjectId.fromObjectId(newId), add.newId);
88  		assertEquals(newMode, add.newMode);
89  	}
90  
91  	protected static void assertDelete(String oldName, ObjectId oldId,
92  			FileMode oldMode, DiffEntry delete) {
93  		assertEquals(DiffEntry.DEV_NULL, delete.newPath);
94  		assertEquals(DiffEntry.A_ZERO, delete.newId);
95  		assertEquals(FileMode.MISSING, delete.newMode);
96  		assertEquals(ChangeType.DELETE, delete.changeType);
97  		assertEquals(oldName, delete.oldPath);
98  		assertEquals(AbbreviatedObjectId.fromObjectId(oldId), delete.oldId);
99  		assertEquals(oldMode, delete.oldMode);
100 	}
101 }