Merged 5.2.N (5.2.1) to HEAD (5.2)

131275 cturlica: REPO-1360: Filter sites by visibility - add automated tests
      - added new tests for filter by visibility
      - updated getSites by personId because the value of totalItems wasn't calculated, also updated existing tests that where using the incorrect expected value.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@132229 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2016-11-03 13:33:06 +00:00
parent 80daf219db
commit 68fc7c7cc1
4 changed files with 394 additions and 23 deletions

View File

@@ -64,10 +64,13 @@ public class TestPersonSites extends EnterpriseTestApi
{
private TestNetwork network1;
private TestNetwork network2;
private TestNetwork network4;
private TestPerson person11;
private TestPerson person12;
private TestPerson person21;
private TestPerson person41;
private TestPerson person42;
private List<TestSite> sites = new ArrayList<>(10);
@@ -87,6 +90,11 @@ public class TestPersonSites extends EnterpriseTestApi
private String site3_title = "b_" + GUID.generate();
private SiteRole site3_role = SiteRole.SiteConsumer;
private TestSite site41;
private TestSite site42;
private TestSite site43;
private TestSite site44;
@Override
@Before
public void setup() throws Exception
@@ -227,7 +235,49 @@ public class TestPersonSites extends EnterpriseTestApi
}
}, person31.getId(), network1.getId());
}
private void initializePersonAndNetwork4WithSites() throws Exception
{
if (network4 == null)
{
network4 = getRepoService().createNetwork(this.getClass().getSimpleName().toLowerCase() + "-3-" + GUID.generate(), true);
network4.create();
// Create some users
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
person41 = network4.createUser();
person42 = network4.createUser();
return null;
}
}, network4.getId());
// ...and some sites
TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
site41 = network4.createSite("A", SiteVisibility.PRIVATE);
site41.inviteToSite(person41.getId(), SiteRole.SiteContributor);
site42 = network4.createSite("B", SiteVisibility.PUBLIC);
site42.inviteToSite(person41.getId(), SiteRole.SiteContributor);
site43 = network4.createSite("C", SiteVisibility.PUBLIC);
site43.inviteToSite(person41.getId(), SiteRole.SiteContributor);
site44 = network4.createSite("D", SiteVisibility.MODERATED);
site44.inviteToSite(person41.getId(), SiteRole.SiteContributor);
return null;
}
}, person42.getId(), network4.getId());
}
}
@Test
public void testPersonSites() throws Exception
{
@@ -307,7 +357,7 @@ public class TestPersonSites extends EnterpriseTestApi
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null);
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), expectedSites.size());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(person11.getId(), createParams(paging, null));
checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
@@ -316,7 +366,7 @@ public class TestPersonSites extends EnterpriseTestApi
{
int skipCount = 2;
int maxItems = 8;
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null);
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), expectedSites.size());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(person11.getId(), createParams(paging, null));
checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
@@ -326,7 +376,7 @@ public class TestPersonSites extends EnterpriseTestApi
{
int skipCount = 0;
int maxItems = 2;
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null);
Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), expectedSites.size());
publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId()));
ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null));
checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp);
@@ -533,7 +583,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "title", true);
@@ -559,7 +609,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "title", false);
@@ -584,7 +634,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "role", true);
@@ -609,7 +659,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "role", false);
@@ -634,7 +684,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "id", true);
@@ -659,7 +709,7 @@ public class TestPersonSites extends EnterpriseTestApi
int skipCount = 1;
int maxItems = 2;
int totalResults = 3;
Paging paging = getPaging(skipCount, maxItems, totalResults, null);
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(paging, "id", false);
@@ -682,7 +732,7 @@ public class TestPersonSites extends EnterpriseTestApi
{
// paging
int totalResults = 3;
Paging paging = getPaging(null, null, totalResults, null);
Paging paging = getPaging(null, null, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(null, null, false);
@@ -738,7 +788,7 @@ public class TestPersonSites extends EnterpriseTestApi
// paging
int totalResults = 4;
Paging paging = getPaging(null, null, totalResults, null);
Paging paging = getPaging(null, null, totalResults, totalResults);
// get memberships
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson32(null, null, false);
@@ -763,4 +813,166 @@ public class TestPersonSites extends EnterpriseTestApi
checkList(expectedList, paging.getExpectedPaging(), resp);
}
}
/**
* Retrieves the site memberships associated to a user.
*
* @param paging
* The paging object
* @param params
* Public api parameters map.
* @param person
* The test person.
* @param network
* The test network.
* @return The site memberships associated to the give user.
* @throws Exception
*/
private ListResponse<MemberOfSite> getSiteMembershipsForPersonAndNetwork(final Paging paging, Map<String, String> params, TestPerson person, TestNetwork network, boolean runAsUserTenant)
throws Exception
{
final Sites sitesProxy = publicApiClient.sites();
publicApiClient.setRequestContext(new RequestContext(network.getId(), person.getId()));
ListResponse<MemberOfSite> resp;
if (runAsUserTenant)
{
// get memberships
resp = TenantUtil.runAsUserTenant(new TenantRunAsWork<ListResponse<MemberOfSite>>()
{
@Override
public ListResponse<MemberOfSite> doWork() throws Exception
{
ListResponse<MemberOfSite> resp = sitesProxy.getPersonSites(person.getId(), createParams(paging, params));
return resp;
}
}, person.getId(), network.getId());
}
else
{
resp = sitesProxy.getPersonSites(person.getId(), createParams(paging, params));
}
return resp;
}
private List<MemberOfSite> getPersonSites(TestPerson person, TestSite... sites) throws PublicApiException
{
Sites sitesProxy = publicApiClient.sites();
List<MemberOfSite> memberOfSiteList = new ArrayList<>();
for (TestSite site : sites)
{
memberOfSiteList.add(sitesProxy.getPersonSite(person.getId(), site.getSiteId()));
}
return memberOfSiteList;
}
private ListResponse<MemberOfSite> getSiteMembershipsForPerson41(final Paging paging, String siteVisibility, boolean runAsUserTenant) throws Exception
{
final Map<String, String> params = new HashMap<>();
params.put("orderBy", "title" + " " + "ASC");
if (siteVisibility != null)
{
params.put("where", "(visibility=" + siteVisibility + ")");
}
return getSiteMembershipsForPersonAndNetwork(paging, params, person41, network4, runAsUserTenant);
}
private ListResponse<MemberOfSite> getSiteMembershipsForPerson41(final Paging paging, String siteVisibility) throws Exception
{
return getSiteMembershipsForPerson41(paging, siteVisibility, true);
}
public void testGetSiteMembershipsWhereSiteVisibilityPrivate() throws Exception
{
// paging
int totalResults = 1;
Paging paging = getPaging(null, null, totalResults, totalResults);
// list sites
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson41(null, SiteVisibility.PRIVATE.name());
// check results
List<MemberOfSite> expectedList = getPersonSites(person41, site41);
checkList(expectedList, paging.getExpectedPaging(), resp);
}
public void testGetSiteMembershipsWhereSiteVisibilityPublic() throws Exception
{
// paging
int totalResults = 2;
Paging paging = getPaging(null, null, totalResults, totalResults);
// list sites
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson41(null, SiteVisibility.PUBLIC.name());
// check results
List<MemberOfSite> expectedList = getPersonSites(person41, site42, site43);
checkList(expectedList, paging.getExpectedPaging(), resp);
}
public void testGetSiteMembershipsWhereSiteVisibilityPublicAndSkipCount() throws Exception
{
// paging
Integer skipCount = 1;
int maxItems = 2;
int totalResults = 2;
Paging paging = getPaging(skipCount, maxItems, totalResults, totalResults);
// list sites
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson41(paging, SiteVisibility.PUBLIC.name());
// check results
List<MemberOfSite> expectedList = getPersonSites(person41, site43);
checkList(expectedList, paging.getExpectedPaging(), resp);
}
public void testGetSiteMembershipsWhereSiteVisibilityModerated() throws Exception
{
// paging
int totalResults = 1;
Paging paging = getPaging(null, null, totalResults, totalResults);
// list sites
ListResponse<MemberOfSite> resp = getSiteMembershipsForPerson41(null, SiteVisibility.MODERATED.name());
// check results
List<MemberOfSite> expectedList = getPersonSites(person41, site44);
checkList(expectedList, paging.getExpectedPaging(), resp);
}
public void testGetSiteMembershipsWhereSiteVisibilityInvalid() throws Exception
{
try
{
getSiteMembershipsForPerson41(null, "invalidVisibility", false);
fail("");
}
catch (PublicApiException e)
{
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode());
}
}
@Test
public void testGetSiteMembershipsWithWhereClause() throws Exception
{
initializePersonAndNetwork4WithSites();
publicApiClient.setRequestContext(new RequestContext(network4.getId(), person41.getId()));
testGetSiteMembershipsWhereSiteVisibilityPrivate();
testGetSiteMembershipsWhereSiteVisibilityPublic();
testGetSiteMembershipsWhereSiteVisibilityPublicAndSkipCount();
testGetSiteMembershipsWhereSiteVisibilityModerated();
testGetSiteMembershipsWhereSiteVisibilityInvalid();
}
}