use of org.alfresco.rest.api.tests.client.PublicApiException in project alfresco-remote-api by Alfresco.
the class TestNodeComments method testNodeCommentsAndLocking.
@Test
public void testNodeCommentsAndLocking() throws Exception {
Comments commentsProxy = publicApiClient.comments();
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception {
TestSite site = sites.get(0);
site.updateMember(person13.getId(), SiteRole.SiteManager);
site.updateMember(person14.getId(), SiteRole.SiteManager);
return null;
}
}, person11.getId(), network1.getId());
Comment comment = new Comment();
comment.setContent("my comment");
Comment createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception {
repoService.lockNode(nodeRef1);
return null;
}
}, person13.getId(), network1.getId());
// change to not lock owner and not node owner
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14.getId()));
// test GET for a locked node
int skipCount = 0;
int maxItems = Integer.MAX_VALUE;
Paging paging = getPaging(skipCount, maxItems);
commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null));
// test POST for a locked node
try {
comment = new Comment();
comment.setContent("my other comment");
createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// test PUT for a locked node
try {
Comment updatedComment = new Comment();
updatedComment.setContent("my comment");
commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// test DELETE for a locked node
try {
commentsProxy.removeNodeComment(nodeRef1.getId(), createdComment.getId());
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// change to node creator
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
// test POST for a locked node
try {
comment = new Comment();
comment.setContent("my other comment");
createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// test PUT for a locked node
try {
Comment updatedComment = new Comment();
updatedComment.setContent("my comment");
commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// test DELETE for a locked node
try {
commentsProxy.removeNodeComment(nodeRef1.getId(), createdComment.getId());
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
// change to lock owner
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13.getId()));
// test GET for a locked node
commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null));
// test POST for a locked node
comment = new Comment();
comment.setContent("my other comment");
createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
// test PUT for a locked node
Comment updatedComment = new Comment();
updatedComment.setContent("my comment");
commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment);
// test DELETE for a locked node
commentsProxy.removeNodeComment(nodeRef1.getId(), createdComment.getId());
} finally {
// undo the lock
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception {
repoService.unlockNode(nodeRef1);
return null;
}
}, person13.getId(), network1.getId());
// put the other members back to SiteCollaborator
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() {
@Override
public Void doWork() throws Exception {
TestSite site = sites.get(0);
site.updateMember(person13.getId(), SiteRole.SiteCollaborator);
site.updateMember(person14.getId(), SiteRole.SiteCollaborator);
return null;
}
}, person11.getId(), network1.getId());
}
}
use of org.alfresco.rest.api.tests.client.PublicApiException in project alfresco-remote-api by Alfresco.
the class TestNodeComments method testNodeComments.
@Test
public // TODO test update comment and modifiedBy in result is a person object
void testNodeComments() throws Exception {
Comments commentsProxy = publicApiClient.comments();
Nodes nodesProxy = publicApiClient.nodes();
People peopleProxy = publicApiClient.people();
// invalid node id
try {
Comment comment = new Comment("Test Comment 4", "Test Comment 4");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.createNodeComment(GUID.generate(), comment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// person from the same network - no permission
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId()));
Comment comment = new Comment("Test Comment 4", "Test Comment 4");
commentsProxy.createNodeComment(nodeRef1.getId(), comment);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
}
// Test Case cloud-2196
// multi-byte characters, create and update comments
{
Comment[] multiByteComments = new Comment[] { new Comment("ڠڡڢ", "ڠڡڢ"), new Comment("\u67e5\u770b\u5168\u90e8", "\u67e5\u770b\u5168\u90e8") };
Map<String, Comment> createdComments = new HashMap<String, Comment>();
for (Comment comment : multiByteComments) {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment);
createdComments.put(ret.getId(), ret);
}
// test that it is possible to add comment to custom type node
commentsProxy.createNodeComment(customTypeObject.getId(), new Comment("Custom type node comment", "The Comment"));
try {
// test that it is not possible to add comment to cm:object node
commentsProxy.createNodeComment(cmObjectNodeRef.getId(), new Comment("CM Object node comment", "The Comment"));
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
// get comments of the non-folder/non-document nodeRef
try {
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems);
commentsProxy.getNodeComments(cmObjectNodeRef.getId(), createParams(paging, null));
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems);
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null));
List<Comment> retComments = resp.getList();
assertEquals(2, retComments.size());
for (Comment comment : retComments) {
String commentId = comment.getId();
Comment expectedComment = createdComments.get(commentId);
expectedComment.expected(comment);
}
Comment[] multiByteCommentUpdates = new Comment[] { new Comment("ӉӋӐӞ", "ӉӋӐӞ"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") };
Map<String, Comment> updatedComments = new HashMap<String, Comment>();
for (Comment comment : multiByteCommentUpdates) {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment);
updatedComments.put(ret.getId(), ret);
}
skipCount = 0;
maxItems = 2;
paging = getPaging(skipCount, maxItems);
resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null));
retComments = resp.getList();
assertEquals(2, retComments.size());
for (Comment comment : retComments) {
String commentId = comment.getId();
Comment expectedComment = updatedComments.get(commentId);
expectedComment.expected(comment);
}
}
{
// special characters
Comment comment = new Comment("", "?*^&*(,");
List<Comment> expectedComments = new ArrayList<Comment>(1);
expectedComments.add(comment);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.createNodeComment(nodeRef3.getId(), comment);
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef3.getId(), createParams(paging, null));
checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
try {
Comment comment = new Comment("", "");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.createNodeComment(nodeRef2.getId(), comment);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
DateFormat format = PublicApiDateFormat.getDateFormat();
final List<Comment> expectedComments = new ArrayList<Comment>(10);
final List<Comment> comments = new ArrayList<Comment>(10);
comments.add(new Comment("Test Comment 4", "Test Comment 4"));
comments.add(new Comment("Test Comment 1", "Test Comment 1"));
comments.add(new Comment("Test Comment 3", "Test Comment 3"));
comments.add(new Comment("Test Comment 2", "Test Comment 2"));
{
Date time = new Date();
for (Comment comment : comments) {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment resp = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
// check response
assertEquals(comment.getContent(), resp.getContent());
assertFalse(StringUtils.isEmpty(resp.getCreatedBy().getDisplayName()));
assertEquals(resp.getCreatedBy().getDisplayName(), person11.getDisplayName());
assertTrue(format.parse(resp.getCreatedAt()).after(time));
person11.expected(resp.getCreatedBy());
assertNotNull(resp.getId());
expectedComments.add(resp);
}
// check activities have been raised
repoService.generateFeed();
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Paging paging = getPaging(0, Integer.MAX_VALUE);
ListResponse<Activity> activities = peopleProxy.getActivities(person11.getId(), createParams(paging, null));
boolean found = false;
for (Activity activity : activities.getList()) {
String activityType = activity.getActivityType();
if (activityType.equals(ActivityType.COMMENT_CREATED)) {
Map<String, Object> summary = activity.getSummary();
assertNotNull(summary);
String objectId = (String) summary.get("objectId");
assertNotNull(objectId);
if (nodeRef1.getId().equals(objectId)) {
found = true;
break;
}
}
}
assertTrue(found);
}
}
// try to add a comment to a comment
try {
Comment comment = comments.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
expectedComments.add(newComment);
commentsProxy.createNodeComment(newComment.getId(), comment);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
// try to add a comment to a tag
try {
Comment comment = comments.get(0);
Tag tag = new Tag("taggification");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Tag addedTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag);
commentsProxy.createNodeComment(addedTag.getId(), comment);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
// add a comment to a folder
{
Date time = new Date();
Comment comment = comments.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment resp = commentsProxy.createNodeComment(folderNodeRef1.getId(), comment);
// check response
assertEquals(comment.getContent(), resp.getContent());
assertTrue(format.parse(resp.getCreatedAt()).after(time));
person11.expected(resp.getCreatedBy());
assertNotNull(resp.getId());
}
Collections.sort(expectedComments);
// Test Case cloud-2205
// Test Case cloud-2217
// Test Case cloud-1517
// pagination
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null));
checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
{
int skipCount = 2;
int maxItems = 10;
Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null));
checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
// invalid node id - 404
try {
int skipCount = 0;
int maxItems = 2;
Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
commentsProxy.getNodeComments("invalid", createParams(expectedPaging, null));
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
try {
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
commentsProxy.getNodeComments(nodeRef1.getId() + ";pwc", createParams(paging, null));
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// suffix the node id with a version number
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId() + ";3.0", createParams(paging, null));
checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
}
// in which the comment resides
try {
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId()));
Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null));
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
}
// document owned by another person in another network, the user is not a member of that network
try {
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId()));
Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null));
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode());
}
// Test Case cloud-1971
// invalid methods
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
int skipCount = 0;
int maxItems = 2;
Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null));
List<Comment> nodeComments = resp.getList();
assertTrue(nodeComments.size() > 0);
Comment comment = nodeComments.get(0);
try {
commentsProxy.create("nodes", nodeRef1.getId(), "comments", comment.getId(), null, "Unable to POST to a node comment");
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try {
commentsProxy.update("nodes", nodeRef1.getId(), "comments", null, null, "Unable to PUT node comments");
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try {
commentsProxy.getSingle("nodes", nodeRef1.getId(), "comments", comment.getId(), "Unable to GET a node comment");
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try {
commentsProxy.remove("nodes", nodeRef1.getId(), "comments", null, "Unable to DELETE node comments");
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
}
// Test Case cloud-2184
// update comments
{
Comment[] testComments = new Comment[] { new Comment("ӉӋӐӞ", "ӉӋӐӞ"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") };
List<Comment> mlComments = new ArrayList<Comment>();
mlComments.add(new Comment("ӉӋӐӞ", "ӉӋӐӞ"));
mlComments.add(new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03"));
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
// create some comments
Map<String, Comment> createdComments = new HashMap<String, Comment>();
for (Comment comment : testComments) {
Comment ret = commentsProxy.createNodeComment(nodeRef4.getId(), comment);
createdComments.put(ret.getId(), ret);
}
// update them with multi-byte content
int i = 0;
List<Comment> updatedComments = new ArrayList<Comment>();
for (Comment comment : createdComments.values()) {
Comment updateComment = mlComments.get(i);
Comment ret = commentsProxy.updateNodeComment(nodeRef4.getId(), comment.getId(), updateComment);
updatedComments.add(ret);
i++;
}
Collections.sort(updatedComments);
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, mlComments.size(), mlComments.size());
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef4.getId(), createParams(paging, null));
checkList(updatedComments, paging.getExpectedPaging(), resp);
}
// invalid node id
try {
Comment comment = expectedComments.get(1);
Comment update = new Comment("Test Comment 4", "Test Comment 4");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.updateNodeComment(GUID.generate(), comment.getId(), update);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// invalid comment id
try {
Comment update = new Comment("Test Comment 4", "Test Comment 4");
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.updateNodeComment(nodeRef1.getId(), GUID.generate(), update);
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// person from the same network, not comment creator
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId()));
Comment comment = expectedComments.get(1);
Comment update = new Comment("Test Comment 4", "Test Comment 4");
commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
}
// person from a different network
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person22.getId()));
Comment comment = expectedComments.get(1);
Comment update = new Comment("Test Comment 4", "Test Comment 4");
commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode());
}
// successful update
{
Date time = new Date();
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment comment = expectedComments.get(1);
Comment update = new Comment("Updated comment", "Updated comment");
Comment resp = commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update);
// simulate a user edit to a comment
Thread.sleep(100);
Comment expected = new Comment(comment);
expected.setTitle("Updated comment");
expected.setEdited(true);
expected.setContent("Updated comment");
expected.setModifiedBy(repoService.getPerson(person11.getId()));
expected.setModifiedAt(PublicApiDateFormat.getDateFormat().format(time));
expected.expected(resp);
}
// invalid node ref
try {
Comment comment = expectedComments.get(1);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.removeNodeComment(GUID.generate(), comment.getId());
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// invalid comment id
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.removeNodeComment(nodeRef1.getId(), GUID.generate());
fail("");
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// successful delete
{
Comment toDelete = expectedComments.get(1);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
commentsProxy.removeNodeComment(nodeRef1.getId(), toDelete.getId());
// check it's been removed
int skipCount = 0;
int maxItems = Integer.MAX_VALUE;
Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null));
List<Comment> actualComments = resp.getList();
assertFalse(actualComments.contains(toDelete));
}
// PUT: test update with null/empty comment
try {
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
Comment comment = new Comment();
comment.setContent("my comment");
Comment createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment);
Comment updatedComment = new Comment();
updatedComment.setContent(null);
commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment);
fail();
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
// ACE-5463
testSkipCountHighValue(expectedComments, commentsProxy);
}
use of org.alfresco.rest.api.tests.client.PublicApiException in project alfresco-remote-api by Alfresco.
the class TestPeople method testListPeopleWithAspectNamesAndProperties.
@Test
public void testListPeopleWithAspectNamesAndProperties() throws PublicApiException {
publicApiClient.setRequestContext(new RequestContext(account3.getId(), account3Admin, "admin"));
personBob = new Person();
personBob.setId("bob@" + account3.getId());
personBob.setUserName(personBob.getId());
personBob.setFirstName("Bob");
personBob.setLastName("Cratchit");
personBob.setEmail("bob.cratchit@example.com");
personBob.setPassword("password");
personBob.setEnabled(true);
personBob.setProperties(Collections.singletonMap("papi:lunch", "Magical sandwich"));
people.create(personBob);
// Are aspectNames and properties left absent when not required?
{
PublicApiClient.ListResponse<Person> resp = listPeople(Collections.emptyMap(), 200);
assertNull(resp.getList().get(0).getAspectNames());
assertNull(resp.getList().get(0).getProperties());
}
// Are aspectNames and properties populated when requested?
{
Map<String, String> parameters = Collections.singletonMap("include", "aspectNames,properties");
PublicApiClient.ListResponse<Person> resp = listPeople(parameters, 200);
Person bob = resp.getList().stream().filter(p -> p.getUserName().equals(personBob.getId())).findFirst().get();
assertNotNull(bob.getAspectNames());
assertTrue(bob.getAspectNames().contains("papi:lunchable"));
assertNotNull(bob.getProperties());
assertEquals("Magical sandwich", bob.getProperties().get("papi:lunch"));
}
}
use of org.alfresco.rest.api.tests.client.PublicApiException in project alfresco-remote-api by Alfresco.
the class TestSiteGroups method shouldAddGroup.
@Test
public void shouldAddGroup() throws Exception {
Sites sitesProxy = publicApiClient.sites();
try {
groupName = createAuthorityContext(user1);
setRequestContext(networkOne.getId(), DEFAULT_ADMIN, DEFAULT_ADMIN_PWD);
TestSite site = TenantUtil.runAsUserTenant(() -> networkOne.createSite(SiteVisibility.PRIVATE), DEFAULT_ADMIN, networkOne.getId());
// Should throw 404 error
try {
sitesProxy.addGroup(site.getSiteId(), new SiteGroup(GUID.generate(), SiteRole.SiteCollaborator.name()));
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
SiteGroup response = sitesProxy.addGroup(site.getSiteId(), new SiteGroup(groupName, SiteRole.SiteCollaborator.name()));
assertEquals(response.getGroup().getId(), groupName);
assertEquals(response.getRole(), SiteRole.SiteCollaborator.name());
// Should throw 409 error
try {
sitesProxy.addGroup(site.getSiteId(), new SiteGroup(groupName, SiteRole.SiteCollaborator.name()));
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode());
}
siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null));
assertEquals(siteMembers.getList().size(), 3);
PublicApiClient.ListResponse<SiteGroup> groups = sitesProxy.getGroups(site.getSiteId(), createParams(paging, null));
assertEquals(groups.getList().size(), 1);
assertEquals(groups.getList().get(0).getRole(), SiteRole.SiteCollaborator.name());
} finally {
clearAuthorityContext(groupName);
}
}
use of org.alfresco.rest.api.tests.client.PublicApiException in project alfresco-remote-api by Alfresco.
the class TestSiteGroups method shouldUpdateGroup.
@Test
public void shouldUpdateGroup() throws Exception {
Sites sitesProxy = publicApiClient.sites();
try {
groupName = createAuthorityContext(user1);
setRequestContext(networkOne.getId(), DEFAULT_ADMIN, DEFAULT_ADMIN_PWD);
TestSite site = TenantUtil.runAsUserTenant(() -> networkOne.createSite(SiteVisibility.PRIVATE), DEFAULT_ADMIN, networkOne.getId());
// Should throw 400 error
try {
sitesProxy.updateGroup(site.getSiteId(), new SiteGroup(GUID.generate(), SiteRole.SiteCollaborator.name()));
} catch (PublicApiException e) {
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
SiteGroup response = sitesProxy.addGroup(site.getSiteId(), new SiteGroup(groupName, SiteRole.SiteCollaborator.name()));
assertEquals(response.getGroup().getId(), groupName);
assertEquals(response.getRole(), SiteRole.SiteCollaborator.name());
response = sitesProxy.updateGroup(site.getSiteId(), new SiteGroup(groupName, SiteRole.SiteContributor.name()));
assertEquals(response.getGroup().getId(), groupName);
assertEquals(response.getRole(), SiteRole.SiteContributor.name());
siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null));
assertEquals(siteMembers.getList().size(), 3);
assertEquals(siteMembers.getList().get(1).getRole(), SiteRole.SiteContributor.name());
assertEquals(siteMembers.getList().get(2).getRole(), SiteRole.SiteContributor.name());
} finally {
clearAuthorityContext(groupName);
}
}
Aggregations