Files
alfresco-community-repo/source/test-java/org/alfresco/rest/api/tests/TestActivities.java
Martin Muller 2f4ee372f1 Merged RETURN-OF-THE-API (5.2.0) to 5.2.N (5.2.1)
128662 jvonka: V1 REST API test improvements - allow tests to be run individually (as well as within a suite)
   REPO-896


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129183 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2016-08-05 13:47:53 +00:00

882 lines
32 KiB
Java

/*
* #%L
* Alfresco Remote API
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.rest.api.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.site.SiteModel;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.repo.tenant.TenantUtil;
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.rest.api.Activities.ActivityWho;
import org.alfresco.rest.api.tests.RepoService.SiteInformation;
import org.alfresco.rest.api.tests.RepoService.TestNetwork;
import org.alfresco.rest.api.tests.RepoService.TestPerson;
import org.alfresco.rest.api.tests.RepoService.TestSite;
import org.alfresco.rest.api.tests.client.PublicApiClient.ListResponse;
import org.alfresco.rest.api.tests.client.PublicApiClient.Paging;
import org.alfresco.rest.api.tests.client.PublicApiClient.People;
import org.alfresco.rest.api.tests.client.PublicApiException;
import org.alfresco.rest.api.tests.client.RequestContext;
import org.alfresco.rest.api.tests.client.data.Activity;
import org.alfresco.rest.api.tests.client.data.SiteRole;
import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.alfresco.util.GUID;
import org.apache.commons.httpclient.HttpStatus;
import org.json.simple.JSONObject;
import org.junit.Before;
import org.junit.Test;
public class TestActivities extends EnterpriseTestApi
{
private SiteService siteService;
private TestNetwork network1;
private TestNetwork network2;
private TestNetwork defaultNetwork;
private TestPerson person1; // network1
private TestPerson person2; // network1
private TestPerson person3; // network2
private TestPerson person4; // defaultNetwork
private TestPerson person5; // defaultNetwork
private TestSite testSite; // network1
private TestSite testSite1; // network1
private TestSite testSite2; // network2
private TestSite testSite3; // defaultNetwork
@Before
public void setup() throws Exception
{
// note: we don't call super.setup() since we create our own test data here !
this.network1 = repoService.createNetworkWithAlias("activitiesNetwork1", true);
this.network2 = repoService.createNetworkWithAlias("activitiesNetwork2", true);
this.defaultNetwork = repoService.createNetwork(TenantService.DEFAULT_DOMAIN, true);
siteService = (SiteService) applicationContext.getBean("SiteService");
try
{
AuthenticationUtil.pushAuthentication();
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
network1.create();
network2.create();
defaultNetwork.create();
}
finally
{
AuthenticationUtil.popAuthentication();
}
// Create some users and sites
final List<TestPerson> people = new ArrayList<TestPerson>(5);
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
TestPerson person = network1.createUser();
people.add(person);
person = network1.createUser();
people.add(person);
return null;
}
}, network1.getId());
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
TestPerson person = network2.createUser();
people.add(person);
return null;
}
}, network2.getId());
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
TestPerson person = defaultNetwork.createUser();
people.add(person);
person = defaultNetwork.createUser();
people.add(person);
return null;
}
}, defaultNetwork.getId());
this.person1 = people.get(0);
this.person2 = people.get(1);
this.person3 = people.get(2);
this.person4 = people.get(3);
this.person5 = people.get(4);
this.testSite = transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>()
{
@SuppressWarnings("synthetic-access")
public TestSite execute() throws Throwable
{
return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person2.getId(), SiteRole.SiteCollaborator);
return site;
}
}, person1.getId(), network1.getId());
}
}, false, true);
this.testSite1 = transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>()
{
@SuppressWarnings("synthetic-access")
public TestSite execute() throws Throwable
{
return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC);
return network1.createSite(siteInfo);
}
}, person1.getId(), network1.getId());
}
}, false, true);
// create some activities against those sites
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@SuppressWarnings("unchecked")
@Override
public Void doWork() throws Exception
{
// ensure at least 3 activities
JSONObject activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite1.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite1.getSiteId(), activityData);
return null;
}
}, person1.getId(), network1.getId());
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@SuppressWarnings("unchecked")
@Override
public Void doWork() throws Exception
{
// ensure at least 3 activities
JSONObject activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
return null;
}
}, person2.getId(), network1.getId());
// user generates activities in 2 networks
this.testSite2 = transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>()
{
@SuppressWarnings("synthetic-access")
public TestSite execute() throws Throwable
{
return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC);
return network2.createSite(siteInfo);
}
}, person3.getId(), network2.getId());
}
}, false, true);
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@SuppressWarnings("unchecked")
@Override
public Void doWork() throws Exception
{
// ensure at least 3 activities
JSONObject activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite.getSiteId(), activityData);
return null;
}
}, person3.getId(), network1.getId());
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@SuppressWarnings("unchecked")
@Override
public Void doWork() throws Exception
{
// ensure at least 3 activities
JSONObject activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite2.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite2.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite2.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite2.getSiteId(), activityData);
activityData = new JSONObject();
activityData.put("title", GUID.generate());
activityData.put("nodeRef", testSite2.getContainerNodeRef("documentLibrary").toString());
repoService.postActivity("org.alfresco.documentlibrary.file-added", testSite2.getSiteId(), activityData);
return null;
}
}, person3.getId(), network2.getId());
this.testSite3 = transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<TestSite>()
{
@SuppressWarnings("synthetic-access")
public TestSite execute() throws Throwable
{
return TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(GUID.generate(), "", "", SiteVisibility.PUBLIC);
return defaultNetwork.createSite(siteInfo);
}
}, person4.getId(), defaultNetwork.getId());
}
}, false, true);
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@SuppressWarnings("unchecked")
@Override
public Void doWork() throws Exception
{
siteService.setMembership(testSite3.getSiteId(), person5.getId(), SiteModel.SITE_CONSUMER);
return null;
}
}, person4.getId(), defaultNetwork.getId());
repoService.generateFeed();
}
@Test
public void testPersonActivities() throws Exception
{
People peopleProxy = publicApiClient.people();
//Test with default tenant domain. see ALF-20448
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person5.getId(), null, false, true);
return activities;
}
}, person5.getId(), defaultNetwork.getId());
for(Activity activity: expectedActivities)
{
if(activity.getSiteId() == null)
{
fail("SiteId should present in user-joined activity.");
}
}
{
int skipCount = 0;
int maxItems = expectedActivities.size();
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("who", String.valueOf(ActivityWho.me));
publicApiClient.setRequestContext(new RequestContext(defaultNetwork.getId(), person5.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(person5.getId(), params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
}
// Test Case cloud-2204
// Test case cloud-1500
// Test Case cloud-2216
// paging
// Test Case cloud-1500
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("who", String.valueOf(ActivityWho.me));
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(person1.getId(), params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
{
int skipCount = 2;
int maxItems = expectedActivities.size() - 2;
assertTrue(maxItems > 0);
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("who", String.valueOf(ActivityWho.me));
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(person1.getId(), params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
// "-me-" user
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("who", String.valueOf(ActivityWho.me));
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(org.alfresco.rest.api.People.DEFAULT_USER, params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
}
// unknown user - 404
try
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
peopleProxy.getActivities(GUID.generate(), createParams(paging, null));
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// unknown site - 404
try
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("siteId", GUID.generate());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getActivities(GUID.generate(), params);
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// user from another network - 404
try
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId()));
peopleProxy.getActivities(person1.getId(), createParams(paging, null));
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode());
}
// another user from the same network - 403
try
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
peopleProxy.getActivities(person1.getId(), createParams(paging, null));
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode());
}
try
{
List<Activity> activities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
return activities;
}
}, person1.getId(), network1.getId());
assertTrue(activities.size() > 0);
Activity activity = activities.get(0);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "activities", String.valueOf(activity.getId()), "Unable to DELETE a person activity");
fail("");
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
// Test Case cloud-1500
// other user activities
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> expectedActivities = repoService.getActivities(person1.getId(), null, true, false);
return expectedActivities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("who", String.valueOf(ActivityWho.others));
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(person1.getId(), params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
// all activities with siteId exclusion
{
List<Activity> expectedActivities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> expectedActivities = repoService.getActivities(person1.getId(), testSite.getSiteId(), false, false);
return expectedActivities;
}
}, person1.getId(), network1.getId());
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedActivities.size(), null);
Map<String, String> params = createParams(paging, null);
params.put("siteId", testSite.getSiteId());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
ListResponse<Activity> response = peopleProxy.getActivities(person1.getId(), params);
checkList(expectedActivities.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), response);
}
// all activities with siteId exclusion, unknown site id
try
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems);
Map<String, String> params = createParams(paging, null);
params.put("siteId", GUID.generate());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getActivities(person1.getId(), params);
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// unknown person id
try
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems);
Map<String, String> params = createParams(paging, null);
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getActivities(GUID.generate(), params);
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode());
}
// invalid who parameter
try
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems);
Map<String, String> params = createParams(paging, null);
params.put("who", GUID.generate());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.getActivities(person1.getId(), params);
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
// Test Case cloud-1970
// Not allowed methods
// try
// {
// publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// peopleProxy.create("people", person1.getId(), "activities", null, null, "Unable to POST to person activities");
// fail("");
// }
// catch(PublicApiException e)
// {
// assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
// }
//
// try
// {
// publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// peopleProxy.update("people", person1.getId(), "activities", null, null, "Unable to PUT person activities");
// fail("");
// }
// catch(PublicApiException e)
// {
// assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
// }
//
// try
// {
// publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// peopleProxy.remove("people", person1.getId(), "activities", null, "Unable to DELETE person activities");
// fail("");
// }
// catch(PublicApiException e)
// {
// assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
// }
//
// try
// {
// List<Activity> activities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
// {
// @Override
// public List<Activity> doWork() throws Exception
// {
// List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
// return activities;
// }
// }, person1.getId(), network1.getId());
// assertTrue(activities.size() > 0);
// Activity activity = activities.get(0);
//
// publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// peopleProxy.create("people", person1.getId(), "activities", String.valueOf(activity.getId()), null, "Unable to POST to a person activity");
// fail("");
// }
// catch(PublicApiException e)
// {
// assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
// }
//
// try
// {
// List<Activity> activities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
// {
// @Override
// public List<Activity> doWork() throws Exception
// {
// List<Activity> activities = repoService.getActivities(person1.getId(), null, false, true);
// return activities;
// }
// }, person1.getId(), network1.getId());
// assertTrue(activities.size() > 0);
// Activity activity = activities.get(0);
//
// publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
// peopleProxy.update("people", person1.getId(), "activities", String.valueOf(activity.getId()), null, "Unable to PUT a person activity");
// fail("");
// }
// catch(PublicApiException e)
// {
// assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
// }
// Test Case cloud-1970
// not allowed methods
{
List<Activity> activities = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Activity>>()
{
@Override
public List<Activity> doWork() throws Exception
{
List<Activity> activities = repoService.getActivities(person1.getId(), null, false, false);
return activities;
}
}, person1.getId(), network1.getId());
assertTrue(activities.size() > 0);
Activity activity = activities.get(0);
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "activities", null, null, "Unable to POST to activities");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.create("people", person1.getId(), "activities", String.valueOf(activity.getId()), null, "Unable to POST to an activity");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.update("people", person1.getId(), "activities", null, null, "Unable to PUT activities");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.update("people", person1.getId(), "activities", String.valueOf(activity.getId()), null, "Unable to PUT an activity");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "activities", null, "Unable to DELETE activities");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
try
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId()));
peopleProxy.remove("people", person1.getId(), "activities", String.valueOf(activity.getId()), "Unable to DELETE an activity");
fail();
}
catch(PublicApiException e)
{
assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode());
}
}
}
/*
* Test that empty roles are not returned
*/
@Test
public void testPUBLICAPI23() throws Exception
{
// Add and then remove personId as a member of the public site
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
testSite.updateMember(person2.getId(), SiteRole.SiteConsumer);
testSite.removeMember(person2.getId());
return null;
}
}, person1.getId(), network1.getId());
// make sure activities have been generated
repoService.generateFeed();
// check that (empty) role is not in the response
People peopleProxy = publicApiClient.people();
{
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId()));
int skipCount = 0;
int maxItems = 10;
Paging paging = getPaging(skipCount, maxItems);
ListResponse<Activity> activities = peopleProxy.getActivities(person2.getId(), createParams(paging, null));
for(Activity activity : activities.getList())
{
String activityType = activity.getActivityType();
if(activityType.equals("org.alfresco.site.user-left"))
{
String role = (String)activity.getSummary().get("role");
String feedPersonId = activity.getFeedPersonId();
if(feedPersonId.equals(person2.getId()))
{
assertTrue(role == null);
break;
}
}
}
}
}
}