Files
alfresco-community-repo/source/test-java/org/alfresco/rest/api/tests/TestActivities.java
Alan Davis a035271251 Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)
64788: Merged V4.2-BUG-FIX (4.2.2) to HEAD-BUG-FIX (4.3/Cloud)
      64683: MNT-10915: Public API Activities : activityType org.alfresco.site.user-joined doesn't contain siteId
       - Modify unit test to use SiteService for inviting user


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@66191 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2014-04-02 19:56:46 +00:00

855 lines
30 KiB
Java

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
{
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;
}
}
}
}
}
}