package org.tmatesoft.svn.test;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import junit.framework.Assert;
import org.junit.Test;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNPropertyValue;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.wc.ISVNPropertyHandler;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNPropertyData;
import org.tmatesoft.svn.core.wc.SVNRevision;
public class SvnRemotePropListTest {
@Test
public void testRemotePropList() throws SVNException {
final Sandbox sandbox = Sandbox.createWithCleanup(getClass().getSimpleName() + ".testRemotePropList", TestOptions.getInstance());
final SVNURL url = sandbox.createSvnRepository();
final CommitBuilder commitBuilder = new CommitBuilder(url);
commitBuilder.addFile("source/file");
commitBuilder.setFileProperty("source/file", "name", SVNPropertyValue.create("value"));
commitBuilder.commit();
final WorkingCopy wc = sandbox.checkoutNewWorkingCopy(url);
SVNClientManager cm = SVNClientManager.newInstance();
final File path = wc.getFile("source/file");
final Map<SVNURL, SVNPropertyData> props = new HashMap<SVNURL, SVNPropertyData>();
cm.getWCClient().doGetProperty(path, null, SVNRevision.UNDEFINED, SVNRevision.create(1), SVNDepth.INFINITY,
new ISVNPropertyHandler() {
public void handleProperty(long revision, SVNPropertyData property) throws SVNException {
}
public void handleProperty(SVNURL url, SVNPropertyData property) throws SVNException {
props.put(url, property);
}
public void handleProperty(File path, SVNPropertyData property) throws SVNException {
}
}, null);
Assert.assertEquals(1, props.size());
Assert.assertNotNull(props.get(url.appendPath("source/file", false)));
}
}