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 package org.eclipse.jgit.gitrepo;
44
45 import static org.junit.Assert.assertTrue;
46
47 import java.io.StringBufferInputStream;
48 import java.util.HashSet;
49 import java.util.Set;
50
51 import org.junit.Test;
52
53 public class ManifestParserTest {
54
55 @Test
56 public void testManifestParser() throws Exception {
57 String baseUrl = "https://git.google.com/";
58 StringBuilder xmlContent = new StringBuilder();
59 Set<String> results = new HashSet<String>();
60 xmlContent.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
61 .append("<manifest>")
62 .append("<remote name=\"remote1\" fetch=\".\" />")
63 .append("<default revision=\"master\" remote=\"remote1\" />")
64 .append("<project path=\"foo\" name=\"")
65 .append("foo")
66 .append("\" groups=\"a,test\" />")
67 .append("<project path=\"bar\" name=\"")
68 .append("bar")
69 .append("\" groups=\"notdefault\" />")
70 .append("<project path=\"foo/a\" name=\"")
71 .append("a")
72 .append("\" groups=\"a\" />")
73 .append("<project path=\"b\" name=\"")
74 .append("b")
75 .append("\" groups=\"b\" />")
76 .append("</manifest>");
77
78 ManifestParser parser = new ManifestParser(
79 null, null, "master", baseUrl, null, null);
80 parser.read(new StringBufferInputStream(xmlContent.toString()));
81
82 results.clear();
83 results.add("foo");
84 results.add("bar");
85 results.add("foo/a");
86 results.add("b");
87 for (RepoProject proj : parser.getProjects()) {
88 String msg = String.format(
89 "project \"%s\" should be included in unfiltered projects",
90 proj.getPath());
91 assertTrue(msg, results.contains(proj.getPath()));
92 results.remove(proj.getPath());
93 }
94 assertTrue(
95 "Unfiltered projects shouldn't contain any unexpected results",
96 results.isEmpty());
97
98 results.clear();
99 results.add("foo");
100 results.add("b");
101 for (RepoProject proj : parser.getFilteredProjects()) {
102 String msg = String.format(
103 "project \"%s\" should be included in filtered projects",
104 proj.getPath());
105 assertTrue(msg, results.contains(proj.getPath()));
106 results.remove(proj.getPath());
107 }
108 assertTrue(
109 "Filtered projects shouldn't contain any unexpected results",
110 results.isEmpty());
111 }
112 }