First draft of reworked artifact listing API.

This commit is contained in:
Jesse Glick committed 2013-08-21 14:05:25 -04:00
1 parent f846169fb5
commit 01fa0201fc
7 files changed
+143 -104

No files matched your search

@@ -25,11 +25,13 @@
package hudson.model;
import hudson.Util;
import hudson.model.Run.Artifact;
import hudson.util.StreamTaskListener;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
@@ -145,4 +147,38 @@ public class RunTest {
assertEquals(a.get(1).getDisplayPath(), "a/a.xml");
}
@Test public void addArtifact() {
Run.ArtifactList list = new Run(new StubJob(), 0) {}.new ArtifactList();
assertEquals("[]", showTree(list));
list.addArtifact("README", 0);
assertEquals("[README]; README[n1]→null", showTree(list));
list.addArtifact("dist/bin/x", 0);
list.addArtifact("dist/bin/Mac OS X/x.app", 0);
list.addArtifact("dist/doc/man/x.1", 0);
list.addArtifact("dist/doc/man/x.8", 0);
assertEquals("[README, dist/bin/x, dist/bin/Mac OS X/x.app, dist/doc/man/x.1, dist/doc/man/x.8]; "
+ "README[n1]→null; "
+ "dist[n2]→null; "
+ "dist/bin[n3]→n2; "
+ "dist/bin/x[n4]→n3; "
+ "dist/bin/Mac OS X[n5]→n3; "
+ "dist/bin/Mac%20OS%20X/x.app[n6]→n5; "
+ "dist/doc[n7]→n2; "
+ "dist/doc/man[n8]→n7; "
+ "dist/doc/man/x.1[n9]→n8; "
+ "dist/doc/man/x.8[n10]→n8", showTree(list));
// TODO collapseNodes (doc/man)
}
private static String showTree(Run.ArtifactList list) {
StringBuilder b = new StringBuilder();
b.append(list);
Map<Run.Artifact,String> tree = list.getTree();
for (Map.Entry<Run.Artifact,String> entry : tree.entrySet()) {
b.append("; ");
Artifact a = entry.getKey();
b.append(a.getHref() != null ? a.getHref() : a.relativePath).append('[').append(a.getTreeNodeId()).append(']').append('→').append(entry.getValue());
}
return b.toString();
}
}