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
This commit is contained in:
Martin Muller
2016-08-05 13:47:53 +00:00
parent ee32e29f48
commit 2f4ee372f1
11 changed files with 386 additions and 347 deletions

View File

@@ -129,7 +129,7 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi
protected final String RUNID = System.currentTimeMillis()+""; protected final String RUNID = System.currentTimeMillis()+"";
@Override
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {

View File

@@ -25,8 +25,17 @@
*/ */
package org.alfresco.rest.api.tests; package org.alfresco.rest.api.tests;
import org.junit.Before;
public class EnterpriseTestApi extends AbstractTestApi public class EnterpriseTestApi extends AbstractTestApi
{ {
@Before
public void setup() throws Exception
{
// force creation of some test data (if not specifically overridden)
getTestFixture().getRandomNetwork();
}
@Override @Override
protected TestFixture getTestFixture() throws Exception protected TestFixture getTestFixture() throws Exception
{ {

View File

@@ -81,6 +81,8 @@ public class TestActivities extends EnterpriseTestApi
@Before @Before
public void setup() throws Exception 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.network1 = repoService.createNetworkWithAlias("activitiesNetwork1", true);
this.network2 = repoService.createNetworkWithAlias("activitiesNetwork2", true); this.network2 = repoService.createNetworkWithAlias("activitiesNetwork2", true);
this.defaultNetwork = repoService.createNetwork(TenantService.DEFAULT_DOMAIN, true); this.defaultNetwork = repoService.createNetwork(TenantService.DEFAULT_DOMAIN, true);

View File

@@ -126,119 +126,13 @@ public class TestFavourites extends EnterpriseTestApi
private Favourites favouritesProxy; private Favourites favouritesProxy;
private SiteMembershipRequests siteMembershipRequestsProxy; private SiteMembershipRequests siteMembershipRequestsProxy;
private void sort(List<Favourite> favourites, final List<Pair<FavouritesService.SortFields, Boolean>> sortProps)
{
Comparator<Favourite> comparator = new Comparator<Favourite>()
{
@Override @Override
public int compare(Favourite o1, Favourite o2)
{
int ret = 0;
for(Pair<FavouritesService.SortFields, Boolean> sort : sortProps)
{
FavouritesService.SortFields field = sort.getFirst();
Boolean ascending = sort.getSecond();
if(field.equals(FavouritesService.SortFields.username))
{
if(ascending)
{
if(o1.getUsername() != null && o2.getUsername() != null)
{
ret = collator.compare(o1.getUsername(), o2.getUsername());
}
}
else
{
if(o1.getUsername() != null && o2.getUsername() != null)
{
ret = o2.getUsername().compareTo(o1.getUsername());
}
}
if(ret != 0)
{
break;
}
}
else if(field.equals(FavouritesService.SortFields.type))
{
if(ascending)
{
ret = o1.getType().compareTo(o2.getType());
}
else
{
ret = o2.getType().compareTo(o1.getType());
}
if(ret != 0)
{
break;
}
}
else if(field.equals(FavouritesService.SortFields.createdAt))
{
if(ascending)
{
ret = o1.getCreatedAt().compareTo(o2.getCreatedAt());
}
else
{
ret = o2.getCreatedAt().compareTo(o1.getCreatedAt());
}
if(ret != 0)
{
break;
}
}
}
return ret;
}
};
Collections.sort(favourites, comparator);
}
/**
* Returns a new list.
*
* @param favourites List<Favourite>
* @param types Set<Type>
* @return ArrayList<Favourite>
*/
private ArrayList<Favourite> filter(List<Favourite> favourites, final Set<Type> types)
{
Predicate<Favourite> predicate = new Predicate<Favourite>()
{
@Override
public boolean apply(Favourite other)
{
Type type = null;
if(other.getTarget() instanceof FileFavouriteTarget)
{
type = Type.FILE;
}
else if(other.getTarget() instanceof FolderFavouriteTarget)
{
type = Type.FOLDER;
}
else if(other.getTarget() instanceof SiteFavouriteTarget)
{
type = Type.SITE;
}
boolean ret = (type != null && types.contains(type));
return ret;
}
};
ArrayList<Favourite> ret = Lists.newArrayList(Collections2.filter(favourites, predicate));
return ret;
}
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {
// init networks
super.setup();
final Iterator<TestNetwork> networksIt = getTestFixture().networksIterator(); final Iterator<TestNetwork> networksIt = getTestFixture().networksIterator();
// Workaround for domain name mismatch in lucene indexing that occurs when this test runs. // Workaround for domain name mismatch in lucene indexing that occurs when this test runs.
@@ -397,6 +291,116 @@ public class TestFavourites extends EnterpriseTestApi
this.siteMembershipRequestsProxy = publicApiClient.siteMembershipRequests(); this.siteMembershipRequestsProxy = publicApiClient.siteMembershipRequests();
} }
private void sort(List<Favourite> favourites, final List<Pair<FavouritesService.SortFields, Boolean>> sortProps)
{
Comparator<Favourite> comparator = new Comparator<Favourite>()
{
@Override
public int compare(Favourite o1, Favourite o2)
{
int ret = 0;
for(Pair<FavouritesService.SortFields, Boolean> sort : sortProps)
{
FavouritesService.SortFields field = sort.getFirst();
Boolean ascending = sort.getSecond();
if(field.equals(FavouritesService.SortFields.username))
{
if(ascending)
{
if(o1.getUsername() != null && o2.getUsername() != null)
{
ret = collator.compare(o1.getUsername(), o2.getUsername());
}
}
else
{
if(o1.getUsername() != null && o2.getUsername() != null)
{
ret = o2.getUsername().compareTo(o1.getUsername());
}
}
if(ret != 0)
{
break;
}
}
else if(field.equals(FavouritesService.SortFields.type))
{
if(ascending)
{
ret = o1.getType().compareTo(o2.getType());
}
else
{
ret = o2.getType().compareTo(o1.getType());
}
if(ret != 0)
{
break;
}
}
else if(field.equals(FavouritesService.SortFields.createdAt))
{
if(ascending)
{
ret = o1.getCreatedAt().compareTo(o2.getCreatedAt());
}
else
{
ret = o2.getCreatedAt().compareTo(o1.getCreatedAt());
}
if(ret != 0)
{
break;
}
}
}
return ret;
}
};
Collections.sort(favourites, comparator);
}
/**
* Returns a new list.
*
* @param favourites List<Favourite>
* @param types Set<Type>
* @return ArrayList<Favourite>
*/
private ArrayList<Favourite> filter(List<Favourite> favourites, final Set<Type> types)
{
Predicate<Favourite> predicate = new Predicate<Favourite>()
{
@Override
public boolean apply(Favourite other)
{
Type type = null;
if(other.getTarget() instanceof FileFavouriteTarget)
{
type = Type.FILE;
}
else if(other.getTarget() instanceof FolderFavouriteTarget)
{
type = Type.FOLDER;
}
else if(other.getTarget() instanceof SiteFavouriteTarget)
{
type = Type.SITE;
}
boolean ret = (type != null && types.contains(type));
return ret;
}
};
ArrayList<Favourite> ret = Lists.newArrayList(Collections2.filter(favourites, predicate));
return ret;
}
private void updateFavourite(String networkId, String runAsUserId, String personId, TARGET_TYPE type) throws Exception private void updateFavourite(String networkId, String runAsUserId, String personId, TARGET_TYPE type) throws Exception
{ {
{ {

View File

@@ -69,6 +69,8 @@ public class TestNetworks extends EnterpriseTestApi
@Before @Before
public void setup() public void setup()
{ {
// note: we don't call super.setup() since we create our own test data here !
// create some networks // create some networks
for(int i = 0; i < 2; i++) for(int i = 0; i < 2; i++)
{ {

View File

@@ -92,9 +92,13 @@ public class TestNodeComments extends EnterpriseTestApi
private NodeRef cmObjectNodeRef; private NodeRef cmObjectNodeRef;
private NodeRef customTypeObject; private NodeRef customTypeObject;
@Override
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {
// init networks
super.setup();
Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt(); Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt();
this.network1 = accountsIt.next(); this.network1 = accountsIt.next();
this.network2 = accountsIt.next(); this.network2 = accountsIt.next();

View File

@@ -87,65 +87,13 @@ public class TestPersonSites extends EnterpriseTestApi
private String site3_title = "b_" + GUID.generate(); private String site3_title = "b_" + GUID.generate();
private SiteRole site3_role = SiteRole.SiteConsumer; private SiteRole site3_role = SiteRole.SiteConsumer;
public void initializeSites() throws Exception
{
/*
* Create data for testing the site sorting. We create the sites as
* person31 and assign roles to person32. The list requests will be
* performed as person32.
*/
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override @Override
public Void doWork() throws Exception
{
person31 = network1.createUser();
person32 = network1.createUser();
return null;
}
}, network1.getId());
this.site1 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site1_name, site1_title, site1_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site1_role);
return site;
}
}, person31.getId(), network1.getId());
this.site2 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site2_name, site2_title, site2_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site2_role);
return site;
}
}, person31.getId(), network1.getId());
this.site3 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site3_name, site3_title, site3_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site3_role);
return site;
}
}, person31.getId(), network1.getId());
}
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {
// init networks
super.setup();
Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt();
assertTrue(networksIt.hasNext()); assertTrue(networksIt.hasNext());
@@ -224,6 +172,61 @@ public class TestPersonSites extends EnterpriseTestApi
}, person12.getId(), network1.getId()); }, person12.getId(), network1.getId());
} }
public void initializeSites() throws Exception
{
/*
* Create data for testing the site sorting. We create the sites as
* person31 and assign roles to person32. The list requests will be
* performed as person32.
*/
TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>()
{
@Override
public Void doWork() throws Exception
{
person31 = network1.createUser();
person32 = network1.createUser();
return null;
}
}, network1.getId());
this.site1 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site1_name, site1_title, site1_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site1_role);
return site;
}
}, person31.getId(), network1.getId());
this.site2 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site2_name, site2_title, site2_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site2_role);
return site;
}
}, person31.getId(), network1.getId());
this.site3 = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>()
{
@Override
public TestSite doWork() throws Exception
{
SiteInformation siteInfo = new SiteInformation(site3_name, site3_title, site3_title, SiteVisibility.PRIVATE);
TestSite site = network1.createSite(siteInfo);
site.inviteToSite(person32.getId(), site3_role);
return site;
}
}, person31.getId(), network1.getId());
}
@Test @Test
public void testPersonSites() throws Exception public void testPersonSites() throws Exception
{ {

View File

@@ -67,6 +67,8 @@ public class TestPublicApi128 extends EnterpriseTestApi
@Before @Before
public void setup() public void setup()
{ {
// note: we don't call super.setup() since we create our own test data here !
// mixed case network // mixed case network
this.time = System.currentTimeMillis(); this.time = System.currentTimeMillis();
this.networkId = getNetworkId(networkPrefix, networkDomain); this.networkId = getNetworkId(networkPrefix, networkDomain);

View File

@@ -68,9 +68,13 @@ public class TestSiteContainers extends EnterpriseTestApi
private TestSite site1; private TestSite site1;
@Override
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {
// init networks
super.setup();
Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt();
assertTrue(networksIt.hasNext()); assertTrue(networksIt.hasNext());

View File

@@ -89,9 +89,13 @@ public class TestSiteMembershipRequests extends EnterpriseTestApi
private Random random = new Random(System.currentTimeMillis()); private Random random = new Random(System.currentTimeMillis());
@Override
@Before @Before
public void setup() throws Exception public void setup() throws Exception
{ {
// init networks
super.setup();
Iterator<TestNetwork> networksIt = getTestFixture().networksIterator(); Iterator<TestNetwork> networksIt = getTestFixture().networksIterator();
this.network1 = networksIt.next(); this.network1 = networksIt.next();
Iterator<String> personIt = network1.getPersonIds().iterator(); Iterator<String> personIt = network1.getPersonIds().iterator();

View File

@@ -69,9 +69,14 @@ public class TestSites extends EnterpriseTestApi
private Site site2; private Site site2;
private Site site3; private Site site3;
@Override
@Before @Before
public void setup() throws Exception public void
setup() throws Exception
{ {
// init networks
super.setup();
// Test: user is member of an account // Test: user is member of an account
this.network1 = getTestFixture().getRandomNetwork(); this.network1 = getTestFixture().getRandomNetwork();