use of org.alfresco.rest.framework.webscripts.ResourceWebScriptPut in project alfresco-remote-api by Alfresco.
the class ParamsExtractorTests method testPutExtractor.
@Test
public void testPutExtractor() throws IOException {
// Put together the stubs
ResourceWebScriptPut extractor = new ResourceWebScriptPut();
extractor.setAssistant(assistant);
extractor.setLocator(locator);
Map<String, String> templateVars = new HashMap<String, String>();
Content content = mock(Content.class);
when(content.getReader()).thenReturn(new StringReader(JsonJacksonTests.FARMER_JSON));
WebScriptRequest request = mock(WebScriptRequest.class);
when(request.getServiceMatch()).thenReturn(new Match(null, templateVars, null));
when(request.getContent()).thenReturn(content);
when(request.getContentType()).thenReturn("application/pdf; charset=UTF-16BE");
Params params = null;
try {
params = extractor.extractParams(mockEntity(), request);
fail("Should not get here. PUT is executed against the instance URL");
} catch (UnsupportedResourceOperationException uoe) {
// Must throw this exception
assertNotNull(uoe);
}
templateVars.put(ResourceLocator.ENTITY_ID, "1234");
try {
params = extractor.extractParams(mockRelationship(), request);
fail("Should not get here. PUT is executed against the instance URL");
} catch (UnsupportedResourceOperationException uoe) {
// Must throw this exception
assertNotNull(uoe);
}
templateVars.put(ResourceLocator.ENTITY_ID, "1234");
// Put single entity wrapped in array
params = extractor.extractParams(mockEntity(), request);
assertNotNull(params);
Object passed = params.getPassedIn();
assertNotNull(passed);
assertTrue("A Farmer was passed in.", Farmer.class.equals(passed.getClass()));
assertNotNull(params.getFilter());
assertTrue("Default filter is BeanPropertiesFilter.AllProperties", BeanPropertiesFilter.AllProperties.class.equals(params.getFilter().getClass()));
// reset the reader
when(content.getReader()).thenReturn(new StringReader(JsonJacksonTests.FARMER_JSON));
params = extractor.extractParams(mockEntity(), request);
assertNotNull(params);
assertEquals("1234", params.getEntityId());
passed = params.getPassedIn();
assertNotNull(passed);
// reset the reader
when(content.getReader()).thenReturn(new StringReader(JsonJacksonTests.FARMER_JSON));
templateVars.put(ResourceLocator.RELATIONSHIP_ID, "67890");
params = extractor.extractParams(mockRelationship(), request);
assertNotNull(params);
assertEquals("1234", params.getEntityId());
passed = params.getPassedIn();
assertNotNull(passed);
assertTrue("A Farmer was passed in.", Farmer.class.equals(passed.getClass()));
Farmer aFarmer = (Farmer) passed;
assertEquals("Relationship id should be automatically set on the object passed in.", aFarmer.getId(), "67890");
// reset the reader
when(content.getReader()).thenReturn(new StringReader(JsonJacksonTests.FARMER_JSON));
params = testExtractAddressedParams(templateVars, request, extractor);
assertEquals("UTF-16BE", params.getContentInfo().getEncoding());
assertEquals(MimetypeMap.MIMETYPE_PDF, params.getContentInfo().getMimeType());
}
Aggregations