use of org.xwiki.resource.ResourceReferenceSerializer in project xwiki-platform by xwiki.
the class PathConverterTest method convertWhenError.
@Test
public void convertWhenError() throws Exception {
ResourceReferenceSerializer<VfsResourceReference, URI> serializer = this.mocker.getInstance(new DefaultParameterizedType(null, ResourceReferenceSerializer.class, VfsResourceReference.class, URI.class), "truevfs");
VfsResourceReference reference = new VfsResourceReference(URI.create("attach:Sandbox.WebHome@my.zip"), "a/b/c");
when(serializer.serialize(reference)).thenThrow(new SerializeResourceReferenceException("error"));
try {
this.mocker.getComponentUnderTest().convert(new DefaultParameterizedType(null, Path.class), "attach:Sandbox.WebHome@my.zip/a/b/c");
fail("Should have thrown an exception here");
} catch (ConversionException expected) {
assertEquals("Failed to convert [attach:Sandbox.WebHome@my.zip/a/b/c] to a Path object", expected.getMessage());
}
}
use of org.xwiki.resource.ResourceReferenceSerializer in project xwiki-platform by xwiki.
the class PathConverterTest method convertWhenNoPermission.
@Test
public void convertWhenNoPermission() throws Exception {
ResourceReferenceSerializer<VfsResourceReference, URI> serializer = this.mocker.getInstance(new DefaultParameterizedType(null, ResourceReferenceSerializer.class, VfsResourceReference.class, URI.class), "truevfs");
VfsResourceReference reference = new VfsResourceReference(URI.create("attach:Sandbox.WebHome@my.zip"), "a/b/c");
when(serializer.serialize(reference)).thenReturn(URI.create("attach://xwiki:Sandbox.WebHome/my.zip/a/b/c"));
VfsPermissionChecker permissionChecker = this.mocker.getInstance(VfsPermissionChecker.class, "cascading");
doThrow(new VfsException("unauthorized")).when(permissionChecker).checkPermission(reference);
try {
this.mocker.getComponentUnderTest().convert(new DefaultParameterizedType(null, Path.class), "attach:Sandbox.WebHome@my.zip/a/b/c");
fail("Should have thrown an exception here");
} catch (ConversionException expected) {
assertEquals("Failed to convert [attach:Sandbox.WebHome@my.zip/a/b/c] to a Path object", expected.getMessage());
assertEquals("VfsException: unauthorized", ExceptionUtils.getRootCauseMessage(expected));
}
}
use of org.xwiki.resource.ResourceReferenceSerializer in project xwiki-platform by xwiki.
the class URIVfsResourceReferenceSerializer method serialize.
@Override
public URI serialize(VfsResourceReference reference) throws SerializeResourceReferenceException, UnsupportedResourceReferenceException {
URI resultURI;
try {
ResourceReferenceSerializer<VfsResourceReference, URI> serializer = this.componentManagerProvider.get().getInstance(new DefaultParameterizedType(null, ResourceReferenceSerializer.class, VfsResourceReference.class, URI.class), String.format("truevfs/%s", reference.getURI().getScheme()));
resultURI = serializer.serialize(reference);
} catch (ComponentLookupException e) {
// No serializer exist, we just don't perform any conversion!
resultURI = reference.toURI();
}
return resultURI;
}
use of org.xwiki.resource.ResourceReferenceSerializer in project xwiki-platform by xwiki.
the class VfsResourceReferenceSerializerTest method serializeWhenSpecificSchemeSerializer.
@Test
public void serializeWhenSpecificSchemeSerializer() throws Exception {
VfsResourceReference reference = new VfsResourceReference(URI.create("attach:attachment"), "path1/path2/test.txt");
ExtendedURL extendedURL = new ExtendedURL(Arrays.asList("vfs", "attach:wiki:space.page@attachment", "path1", "path2", "test.txt"));
ResourceReferenceSerializer<VfsResourceReference, ExtendedURL> serializer = this.mocker.registerMockComponent(new DefaultParameterizedType(null, ResourceReferenceSerializer.class, VfsResourceReference.class, ExtendedURL.class), "attach");
when(serializer.serialize(reference)).thenReturn(extendedURL);
assertEquals("/vfs/attach%3Awiki%3Aspace.page%40attachment/path1/path2/test.txt", this.mocker.getComponentUnderTest().serialize(reference).toString());
}
use of org.xwiki.resource.ResourceReferenceSerializer in project xwiki-platform by xwiki.
the class PathConverterTest method convertWhenOk.
@Test
public void convertWhenOk() throws Exception {
ResourceReferenceSerializer<VfsResourceReference, URI> serializer = this.mocker.getInstance(new DefaultParameterizedType(null, ResourceReferenceSerializer.class, VfsResourceReference.class, URI.class), "truevfs");
VfsResourceReference reference = new VfsResourceReference(URI.create("attach:Sandbox.WebHome@my.zip"), "a/b/c");
when(serializer.serialize(reference)).thenReturn(URI.create("attach://xwiki:Sandbox.WebHome/my.zip/a/b/c"));
Path path = this.mocker.getComponentUnderTest().convert(new DefaultParameterizedType(null, Path.class), "attach:Sandbox.WebHome@my.zip/a/b/c");
assertEquals("attach://xwiki:Sandbox.WebHome/my.zip/a/b/c", path.toString());
assertEquals(TPath.class.getName(), path.getClass().getName());
}
Aggregations