1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package org.eclipse.jgit.util;
45
46 import static org.eclipse.jgit.util.Paths.compare;
47 import static org.eclipse.jgit.util.Paths.compareSameName;
48 import static org.junit.Assert.assertEquals;
49 import static org.junit.Assert.assertNull;
50
51 import org.eclipse.jgit.lib.Constants;
52 import org.eclipse.jgit.lib.FileMode;
53 import org.junit.Test;
54
55 public class PathsTest {
56 @Test
57 public void testStripTrailingSeparator() {
58 assertNull(Paths.stripTrailingSeparator(null));
59 assertEquals("", Paths.stripTrailingSeparator(""));
60 assertEquals("a", Paths.stripTrailingSeparator("a"));
61 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo"));
62 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo/"));
63 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo//"));
64 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo///"));
65 }
66
67 @Test
68 public void testPathCompare() {
69 byte[] a = Constants.encode("afoo/bar.c");
70 byte[] b = Constants.encode("bfoo/bar.c");
71
72 assertEquals(0, compare(a, 1, a.length, 0, b, 1, b.length, 0));
73 assertEquals(-1, compare(a, 0, a.length, 0, b, 0, b.length, 0));
74 assertEquals(1, compare(b, 0, b.length, 0, a, 0, a.length, 0));
75
76 a = Constants.encode("a");
77 b = Constants.encode("aa");
78 assertEquals(-97, compare(a, 0, a.length, 0, b, 0, b.length, 0));
79 assertEquals(0, compare(a, 0, a.length, 0, b, 0, 1, 0));
80 assertEquals(0, compare(a, 0, a.length, 0, b, 1, 2, 0));
81 assertEquals(0, compareSameName(a, 0, a.length, b, 1, b.length, 0));
82 assertEquals(0, compareSameName(a, 0, a.length, b, 0, 1, 0));
83 assertEquals(-50, compareSameName(a, 0, a.length, b, 0, b.length, 0));
84 assertEquals(97, compareSameName(b, 0, b.length, a, 0, a.length, 0));
85
86 a = Constants.encode("a");
87 b = Constants.encode("a");
88 assertEquals(0, compare(
89 a, 0, a.length, FileMode.TREE.getBits(),
90 b, 0, b.length, FileMode.TREE.getBits()));
91 assertEquals(0, compare(
92 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
93 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
94 assertEquals(-47, compare(
95 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
96 b, 0, b.length, FileMode.TREE.getBits()));
97 assertEquals(47, compare(
98 a, 0, a.length, FileMode.TREE.getBits(),
99 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
100
101 assertEquals(0, compareSameName(
102 a, 0, a.length,
103 b, 0, b.length, FileMode.TREE.getBits()));
104 assertEquals(0, compareSameName(
105 a, 0, a.length,
106 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
107
108 a = Constants.encode("a.c");
109 b = Constants.encode("a");
110 byte[] c = Constants.encode("a0c");
111 assertEquals(-1, compare(
112 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
113 b, 0, b.length, FileMode.TREE.getBits()));
114 assertEquals(-1, compare(
115 b, 0, b.length, FileMode.TREE.getBits(),
116 c, 0, c.length, FileMode.REGULAR_FILE.getBits()));
117 }
118 }