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