REPO-2289 : Implement tests in TAS project for 'Groups'

Implemented createGroupMembershipUntilIsCreated that waits maximum 90s for solr to index the group membership
   Add test for each endpoint.
   Updated listGroupMembership for person as it did not returned the correct model.
This commit is contained in:
Alexandru-Eusebiu Epure
2017-10-23 16:05:58 +03:00
parent 369dedf435
commit 7cb8112e75
@@ -6,7 +6,6 @@ import javax.json.Json;
import javax.json.JsonObject;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestGroupsModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.testrail.ExecutionType;
@@ -25,43 +24,128 @@ public class GroupsTests extends RestTest
adminUser = dataUser.getAdminUser();
userModel = dataUser.createRandomTestUser();
}
@Test(groups = { TestGroup.REST_API, TestGroup.GROUPS, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY,
description = "Verify Collaborator can not lock PERSISTENT after EPHEMERAL lock made by different user")
public void blabla() throws Exception
description = "Verify creation, listing, updating and deletion of groups.")
public void createListUpdateAndDeleteGroup() throws Exception
{
String randomUUID = UUID.randomUUID().toString();
JsonObject groupBody = Json.createObjectBuilder().add("id", "testGroup"+randomUUID).add("displayName","TestGroup"+randomUUID).add("isRoot", true).build();
String groupName = "ZtestGroup" + UUID.randomUUID().toString();
JsonObject groupBody = Json.createObjectBuilder().add("id", groupName).add("displayName", groupName).build();
String groupBodyCreate = groupBody.toString();
//GroupCreation:
//-ve
restClient.authenticateUser(userModel).withCoreAPI().usingGroups().createGroup(groupBodyCreate);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
//+ve
restClient.authenticateUser(adminUser).withCoreAPI().usingParams("include=zones").usingGroups().createGroup(groupBodyCreate)
.assertThat().field("zones").isNotNull();
.assertThat().field("zones").contains("APP.DEFAULT")
.and().field("isRoot").is(true)
.and().field("displayName").is(groupName);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingParams("isRoot=true&orderBy=id DESC&maxItems=5").usingGroups().listGroups()
.assertThat().entriesListIsSortedDescBy("id")
// .and().entriesListContains("isRoot", "true")
.and().paginationField("maxItems").equals(5);
//ListGroups:
restClient.withCoreAPI().usingParams("orderBy=displayName DESC&maxItems=10").usingGroups().listGroups()
.assertThat().entriesListContains("id", "GROUP_"+groupName)
.and().entriesListDoesNotContain("zones")
.and().entriesListIsSortedDescBy("displayName")
.and().paginationField("maxItems").is("10");
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withCoreAPI().usingGroups().getGroupDetail("GROUP_"+"testGroup"+randomUUID);
groupBody = Json.createObjectBuilder().add("displayName", "Z"+groupName).build();
String groupBodyUpdate = groupBody.toString();
//UpdateGroup:
restClient.withCoreAPI().usingGroups().updateGroupDetails("GROUP_"+groupName, groupBodyUpdate)
.assertThat().field("displayName").is("Z"+groupName)
.and().field("id").is("GROUP_"+groupName)
.and().field("zones").isNull();
restClient.assertStatusCodeIs(HttpStatus.OK);
JsonObject groupMembership = Json.createObjectBuilder().add("id", userModel.getUsername()).add("memberType", "PERSON").build();
String groupMembershipBodyCreate = groupMembership.toString();
restClient.withCoreAPI().usingGroups().createGroupMembership("GROUP_"+"testGroup"+randomUUID, groupMembershipBodyCreate);
//GetGroupDetails:
restClient.withCoreAPI().usingParams("include=zones").usingGroups().getGroupDetail("GROUP_"+groupName)
.assertThat().field("id").is("GROUP_"+groupName)
.and().field("zones").contains("APP.DEFAULT")
.and().field("isRoot").is(true);
restClient.assertStatusCodeIs(HttpStatus.OK);
//DeleteGroup:
//-ve
restClient.authenticateUser(userModel).withCoreAPI().usingGroups().deleteGroup("GROUP_"+groupName);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
//+ve
restClient.authenticateUser(adminUser).withCoreAPI().usingGroups().deleteGroup("GROUP_"+groupName);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@Test(groups = { TestGroup.REST_API, TestGroup.GROUPS, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY,
description = "Verify creation, listing(only for person) and deletion of group memberships. ")
public void createListDeleteGroupMembership() throws Exception
{
String groupName = "ZtestGroup" + UUID.randomUUID().toString();
JsonObject groupBody = Json.createObjectBuilder().add("id", groupName).add("displayName", groupName).build();
String groupBodyCreate = groupBody.toString();
//GroupCreation:
restClient.authenticateUser(adminUser).withCoreAPI().usingParams("include=zones").usingGroups().createGroup(groupBodyCreate);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withCoreAPI().usingGroups().listGroupMemberships("GROUP_"+"testGroup"+randomUUID);
JsonObject groupMembershipBody = Json.createObjectBuilder().add("id", userModel.getUsername()).add("memberType", "PERSON").build();
String groupMembershipBodyCreate = groupMembershipBody.toString();
//MembershipCreation:
//-ve
restClient.authenticateUser(userModel).withCoreAPI().usingGroups().createGroupMembership("GROUP_"+groupName, groupMembershipBodyCreate);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
//+ve
restClient.authenticateUser(adminUser).withCoreAPI().usingGroups().createGroupMembership("GROUP_"+groupName, groupMembershipBodyCreate);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
//ListPersonMembership
restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).listGroupMemberships()
.assertThat().entriesListContains("id", "GROUP_"+groupName);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withCoreAPI().usingGroups().deleteGroupMembership("GROUP_"+"testGroup"+randomUUID, userModel.getUsername());
//DeleteGroupMembership
//-ve
restClient.withCoreAPI().usingGroups().deleteGroupMembership("GROUP_"+groupName, userModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
//+ve
restClient.authenticateUser(adminUser).withCoreAPI().usingGroups().deleteGroupMembership("GROUP_"+groupName, userModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingGroups().deleteGroup("GROUP_"+"testGroup"+randomUUID);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
//ListAgainPersonMembership
restClient.withCoreAPI().usingUser(userModel).listGroupMemberships()
.assertThat().entriesListDoesNotContain("id", "GROUP_"+groupName);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Test(groups = { TestGroup.REST_API, TestGroup.GROUPS, TestGroup.SANITY })
@TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY,
description = "Verify listing of group memberships.")
public void listGroupMembership() throws Exception
{
String groupName = "testGroup" + UUID.randomUUID().toString();
JsonObject groupBody = Json.createObjectBuilder().add("id", groupName).add("displayName", groupName).build();
String groupBodyCreate = groupBody.toString();
//GroupCreation:
restClient.authenticateUser(adminUser).withCoreAPI().usingParams("include=zones").usingGroups().createGroup(groupBodyCreate);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
JsonObject groupMembershipBody = Json.createObjectBuilder().add("id", userModel.getUsername()).add("memberType", "PERSON").build();
String groupMembershipBodyCreate = groupMembershipBody.toString();
//MembershipCreation
restClient.withCoreAPI().usingGroups().createGroupMembershipUntilIsCreated("GROUP_"+groupName, groupMembershipBodyCreate, userModel.getUsername())
.assertThat().field("displayName").is(userModel.getUsername())
.and().field("id").is(userModel.getUsername())
.and().field("memberType").is("PERSON");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
//ListGroupMembership
restClient.withCoreAPI().usingGroups().listGroupMemberships("GROUP_"+groupName)
.assertThat().entriesListContains("id", userModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}