package org.nuxeo.ecm.core.io.download; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import org.junit.Test; public class TestDownloadBlobInfo { @Test public void testParseDownloadPath() { assertParsed("blobholder:0", null, ""); assertParsed("blobholder:0", null, "/"); assertParsed("foo", null, "/foo"); assertParsed("foo", null, "/foo/"); assertParsed("foo", "bar", "/foo/bar"); assertParsed("foo/bar", "baz", "/foo/bar/baz"); assertParsed("foo/bar/baz", "moo", "/foo/bar/baz/moo"); assertParsed("files:files/0/file", "image.png", "/files:files/0/file/image.png"); } protected void assertParsed(String xpath, String filename, String string) { DownloadBlobInfo downloadBlobInfo = new DownloadBlobInfo("somerepo/someid" + string); assertEquals("somerepo", downloadBlobInfo.repository); assertEquals("someid", downloadBlobInfo.docId); assertEquals(xpath, downloadBlobInfo.xpath); assertEquals(filename, downloadBlobInfo.filename); } @Test public void cannotConstructDownloadBlobInfo() { try { new DownloadBlobInfo("foo"); fail(); } catch (IllegalArgumentException e) { // ok } } }