mirror of
https://github.com/Alfresco/SearchServices.git
synced 2025-09-17 14:21:20 +00:00
Updates to REST API framework - javadocs, updates to API calls
This commit is contained in:
135
e2e-test/java/org/alfresco/rest/RestDemoTest.java
Normal file
135
e2e-test/java/org/alfresco/rest/RestDemoTest.java
Normal file
@@ -0,0 +1,135 @@
|
||||
package org.alfresco.rest;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.alfresco.dataprep.CMISUtil.DocumentType;
|
||||
import org.alfresco.dataprep.ContentService;
|
||||
import org.alfresco.rest.exception.JsonToModelConversionException;
|
||||
import org.alfresco.rest.model.RestCommentModel;
|
||||
import org.alfresco.rest.model.SiteMember;
|
||||
import org.alfresco.utility.data.DataSite;
|
||||
import org.alfresco.utility.data.DataUser;
|
||||
import org.alfresco.utility.exception.DataPreparationException;
|
||||
import org.alfresco.utility.model.SiteModel;
|
||||
import org.alfresco.utility.model.UserModel;
|
||||
import org.apache.chemistry.opencmis.client.api.Document;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.social.alfresco.api.entities.Role;
|
||||
import org.springframework.social.alfresco.api.entities.Site.Visibility;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class RestDemoTest extends RestTest
|
||||
{
|
||||
@Autowired
|
||||
RestSitesApi sitesApi;
|
||||
|
||||
@Autowired
|
||||
DataUser dataUser;
|
||||
|
||||
@Autowired
|
||||
DataSite dataSite;
|
||||
|
||||
@Autowired
|
||||
ContentService content;
|
||||
|
||||
@Autowired
|
||||
RestCommentsApi commentsAPI;
|
||||
|
||||
private UserModel userModel;
|
||||
private SiteModel siteModel;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() throws DataPreparationException
|
||||
{
|
||||
userModel = dataUser.getAdminUser();
|
||||
siteModel = dataSite.createPublicRandomSite();
|
||||
restClient.authenticateUser(userModel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data preparation – create site with custom details <br/>
|
||||
* Perform GET sites call using admin user<br/>
|
||||
* Check that created site is included in response <br/>
|
||||
* Perform GET site call, validate that site title, description and visibility are correct <br/>
|
||||
*
|
||||
* @throws JsonToModelConversionException
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void sitesTest() throws JsonToModelConversionException, Exception
|
||||
{
|
||||
sitesApi.useRestClient(restClient);
|
||||
|
||||
sitesApi.getAllSites().assertThatResponseHasSite(siteModel.getId()).getSite(siteModel.getId())
|
||||
.assertSiteHasVisibility(Visibility.PUBLIC)
|
||||
.assertSiteHasTitle(siteModel.getTitle())
|
||||
.assertSiteHasDescription(siteModel.getDescription());
|
||||
}
|
||||
|
||||
/**
|
||||
* Data preparation – create site and document on server <br/>
|
||||
* POST one comment to file using admin user <br/>
|
||||
* Perform GET comments, check the new one is listed <br/>
|
||||
* Update existing comment using PUT call, check that comment content is updated <br/>
|
||||
*
|
||||
* @throws JsonToModelConversionException
|
||||
*/
|
||||
@Test
|
||||
public void commentsTest() throws JsonToModelConversionException
|
||||
{
|
||||
commentsAPI.useRestClient(restClient);
|
||||
|
||||
File file = new File("textDocument-" + System.currentTimeMillis());
|
||||
Document document = content.createDocumentInRepository(userModel.getUsername(),
|
||||
userModel.getPassword(), "Shared", DocumentType.TEXT_PLAIN, file, "This is a text file");
|
||||
|
||||
// add new comment
|
||||
RestCommentModel commentEntry = commentsAPI.addComment(document.getId(), "This is a new comment");
|
||||
commentsAPI.getNodeComments(document.getId()).assertThatResponseIsNotEmpty()
|
||||
.assertThatCommentWithIdExists(commentEntry.getId())
|
||||
.assertThatCommentWithContentExists("This is a new comment");
|
||||
|
||||
// update comment
|
||||
commentEntry = commentsAPI.updateComment(document.getId(), commentEntry.getId(), "This is the updated comment");
|
||||
commentsAPI.getNodeComments(document.getId()).assertThatResponseIsNotEmpty()
|
||||
.assertThatCommentWithIdExists(commentEntry.getId())
|
||||
.assertThatCommentWithContentExists("This is the updated comment");
|
||||
}
|
||||
|
||||
/**
|
||||
* Data preparation – create site and a new user <br/>
|
||||
* As admin, add user as Consumer to site as a new site member using POST call <br/>
|
||||
* Update site member role to Manager using PUT call <br/>
|
||||
* Delete site member using DELETE call <br/>
|
||||
*
|
||||
* @throws DataPreparationException
|
||||
* @throws JsonToModelConversionException
|
||||
*/
|
||||
@Test
|
||||
public void siteMembersTest() throws DataPreparationException, JsonToModelConversionException
|
||||
{
|
||||
sitesApi.useRestClient(restClient);
|
||||
|
||||
UserModel newUser = dataUser.createRandomTestUser();
|
||||
SiteMember siteMember = new SiteMember(Role.SiteConsumer.toString(), newUser.getUsername());
|
||||
|
||||
// add user as Consumer to site
|
||||
sitesApi.addPerson(siteModel.getId(), siteMember);
|
||||
sitesApi.getSiteMembers(siteModel.getId()).assertThatSiteHasMember(siteMember.getId())
|
||||
.getSiteMember(siteMember.getId()).assertSiteMemberHasRole(Role.SiteConsumer);
|
||||
|
||||
// update site member to Manager
|
||||
siteMember.setRole(Role.SiteManager.toString());
|
||||
;
|
||||
sitesApi.updateSiteMember(siteModel.getId(), newUser.getUsername(), siteMember);
|
||||
sitesApi.getSiteMembers(siteModel.getId()).assertThatSiteHasMember(siteMember.getId())
|
||||
.getSiteMember(siteMember.getId()).assertSiteMemberHasRole(Role.SiteManager);
|
||||
|
||||
// delete site member
|
||||
sitesApi.deleteSiteMember(siteModel.getId(), newUser.getUsername());
|
||||
sitesApi.usingRestWrapper().assertStatusCodeIs(HttpStatus.NO_CONTENT.toString());
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user