List of usage examples for org.apache.commons.httpclient HttpStatus SC_METHOD_NOT_ALLOWED
int SC_METHOD_NOT_ALLOWED
To view the source code for org.apache.commons.httpclient HttpStatus SC_METHOD_NOT_ALLOWED.
Click Source Link
From source file:org.alfresco.rest.api.tests.TestFavouriteSites.java
@Test public void testFavouriteSites() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());//from w w w .j a v a 2s .c o m final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); // Create some users and sites final List<TestPerson> people = new ArrayList<TestPerson>(); TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); 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); person = network2.createUser(); people.add(person); return null; } }, network2.getId()); final TestPerson person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final TestPerson person4 = people.get(3); final TestPerson person5 = people.get(3); TestSite 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); return network1.createSite(siteInfo); } }, person1.getId(), network1.getId()); } }, false, true); TestSite 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); TestSite 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 network1.createSite(siteInfo); } }, person1.getId(), network1.getId()); } }, false, true); TestSite testSite4 = 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); } }, person5.getId(), network2.getId()); } }, false, true); Sites sitesProxy = publicApiClient.sites(); // invalid methods try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.create("people", person1.getId(), "favorite-sites", testSite.getSiteId(), fs.toJSON().toString(), "Unable to POST to a favorite-site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.update("people", person1.getId(), "favorite-sites", null, fs.toJSON().toString(), "Unable to PUT favorite-sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.update("people", person1.getId(), "favorite-sites", testSite.getSiteId(), fs.toJSON().toString(), "Unable to PUT a favorite-site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.remove("people", person1.getId(), "favorite-sites", null, "Unable to DELETE favorite-sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Create favourite site // unknown user - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite("invalid.user", fs); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // user from another network - 401 (not able to auth against tenant) try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite(person1.getId(), fs); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); sitesProxy.createFavouriteSite(person2.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // a member of this site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); FavouriteSite resp = sitesProxy.createFavouriteSite(person1.getId(), fs); fs.expected(resp); } // add same favourite site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createFavouriteSite(person1.getId(), new FavouriteSite(testSite.getSiteId())); fail(); } catch (PublicApiException e) { assertEquals(409, e.getHttpResponse().getStatusCode()); } // "-me" user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); FavouriteSite fs = new FavouriteSite(testSite.getSiteId()); FavouriteSite resp = sitesProxy.createFavouriteSite(org.alfresco.rest.api.People.DEFAULT_USER, fs); fs.expected(resp); final List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person2); } }, person2.getId(), network1.getId()); // check it's there int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.getFavouriteSites(person2.getId(), createParams(paging, null)); } // not a member of this site { FavouriteSite fs = new FavouriteSite(testSite1.getSiteId()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite ret = sitesProxy.createFavouriteSite(person1.getId(), fs); fs.expected(ret); } // GET favourite sites { final List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person1); } }, person1.getId(), network1.getId()); // Test Case cloud-1490 // unknown user try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.getFavouriteSites(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // authentication: unknown user try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient .setRequestContext(new RequestContext(network1.getId(), GUID.generate(), "password")); sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same network - 403 try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // another user from another network - 401 try { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // successful GET { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } // skipCount is greater than the number of favourite sites { int skipCount = expectedFavouriteSites.size() + 100; Paging paging = getPaging(skipCount, null, expectedFavouriteSites.size(), expectedFavouriteSites.size()); List<FavouriteSite> expected = Collections.emptyList(); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); checkList(expected, paging.getExpectedPaging(), response); } // "-me-" user { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy .getFavouriteSites(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } } // user is a member of the site which he has favourited { publicApiClient.setRequestContext(new RequestContext(network2.getId(), person5.getId())); List<FavouriteSite> expectedFavouriteSites = new ArrayList<FavouriteSite>(1); FavouriteSite fs = new FavouriteSite(testSite4.getSiteId()); expectedFavouriteSites.add(fs); FavouriteSite ret = sitesProxy.createFavouriteSite(person5.getId(), fs); fs.expected(ret); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person5.getId(), createParams(paging, null)); checkList(expectedFavouriteSites, paging.getExpectedPaging(), response); } // remove { // create some favourite sites { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.createFavouriteSite(person3.getId(), fs); fs = new FavouriteSite(testSite1); sitesProxy.createFavouriteSite(person3.getId(), fs); } // known user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.removeFavouriteSite(person1.getId(), fs); List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person1); } }, person1.getId(), network1.getId()); // check removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person1.getId(), createParams(paging, null)); assertFalse(response.getList().contains(fs)); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite); sitesProxy.removeFavouriteSite(GUID.generate(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(GUID.generate()); sitesProxy.removeFavouriteSite(person1.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // try to remove a favourite site that is not a favourite site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); FavouriteSite fs = new FavouriteSite(testSite3); sitesProxy.removeFavouriteSite(person1.getId(), fs); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // "-me-" user { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); FavouriteSite fs = new FavouriteSite(testSite1); sitesProxy.removeFavouriteSite(org.alfresco.rest.api.People.DEFAULT_USER, fs); List<FavouriteSite> expectedFavouriteSites = TenantUtil .runAsUserTenant(new TenantRunAsWork<List<FavouriteSite>>() { @Override public List<FavouriteSite> doWork() throws Exception { return repoService.getFavouriteSites(person3); } }, person3.getId(), network1.getId()); // check removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedFavouriteSites.size(), expectedFavouriteSites.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); ListResponse<FavouriteSite> response = sitesProxy.getFavouriteSites(person3.getId(), createParams(paging, null)); assertFalse(response.getList().contains(fs)); } } }
From source file:org.alfresco.rest.api.tests.TestNetworks.java
@Test public void testPersonNetworks() throws Exception { People peopleProxy = publicApiClient.people(); {//from www .jav a 2 s.co m /** * Test http://<host>:<port>/alfresco/a i.e. tenant servlet root - should return user's networks * */ final TestNetwork testAccount = getTestFixture().getRandomNetwork(); Iterator<TestPerson> personIt = testAccount.getPeople().iterator(); final TestPerson person = personIt.next(); RequestContext rc = new RequestContext(null, person.getId()); publicApiClient.setRequestContext(rc); HttpResponse response = publicApiClient.delete(null, null, null, null, null); //url /null/alfresco/versions/1 does not map to a Web Script assertEquals(404, response.getStatusCode()); PublicApiClient.ExpectedErrorResponse errorResponse = RestApiUtil .parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); response = publicApiClient.put(null, null, null, null, null, null, null); assertEquals(404, response.getStatusCode()); errorResponse = RestApiUtil.parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); response = publicApiClient.post(null, null, null, null, null, null); assertEquals(404, response.getStatusCode()); errorResponse = RestApiUtil.parseErrorResponse(response.getJsonResponse()); assertNotNull(errorResponse); assertNotNull(errorResponse.getErrorKey()); assertNotNull(errorResponse.getBriefSummary()); List<PersonNetwork> expectedNetworkMembers = person.getNetworkMemberships(); int expectedTotal = expectedNetworkMembers.size(); { // GET / - users networks Paging paging = getPaging(0, Integer.MAX_VALUE, expectedTotal, expectedTotal); publicApiClient.setRequestContext(new RequestContext("-default-", person.getId())); response = publicApiClient.index(createParams(paging, null)); ListResponse<PersonNetwork> resp = PersonNetwork.parseNetworkMembers(response.getJsonResponse()); assertEquals(200, response.getStatusCode()); checkList(new ArrayList<PersonNetwork>(expectedNetworkMembers), paging.getExpectedPaging(), resp); } } // user from another network { publicApiClient.setRequestContext(new RequestContext("-default-", person21.getId())); List<PersonNetwork> networksMemberships = Collections.emptyList(); try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // user from the same network try { List<PersonNetwork> networksMemberships = person12.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } List<PersonNetwork> networksMemberships = person11.getNetworkMemberships(); // Test Case cloud-2203 // Test Case cloud-1498 // test paging { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); ListResponse<PersonNetwork> resp = peopleProxy.getNetworkMemberships(person11.getId(), createParams(paging, null)); checkList(networksMemberships.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // "-me-" user { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, networksMemberships.size(), networksMemberships.size()); ListResponse<PersonNetwork> resp = peopleProxy .getNetworkMemberships(org.alfresco.rest.api.People.DEFAULT_USER, createParams(paging, null)); checkList(networksMemberships.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // unknown person id try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, networkMemberships.size(), networkMemberships.size()); peopleProxy.getNetworkMemberships("invalidUser", createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid caller authentication try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId(), GUID.generate())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, networkMemberships.size(), networkMemberships.size()); peopleProxy.getNetworkMemberships(person11.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1499 // unknown person id try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); assertTrue(networkMemberships.size() > 0); PersonNetwork network = networkMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.getNetworkMembership("invalidUser", network.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid caller authentication try { List<PersonNetwork> networkMemberships = person11.getNetworkMemberships(); assertTrue(networkMemberships.size() > 0); PersonNetwork network = networkMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId(), GUID.generate())); peopleProxy.getNetworkMembership(person11.getId(), network.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // incorrect network id try { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.getNetworkMembership(person11.getId(), GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // 1969 // not allowed methods // POST, POST networkId, PUT, PUT networkId, DELETE, DELETE networkId try { PersonNetwork pn = new PersonNetwork(GUID.generate()); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.create("people", person11.getId(), "networks", null, pn.toJSON().toString(), "Unable to POST to person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.create("people", person11.getId(), "networks", pn.getId(), pn.toJSON().toString(), "Unable to POST to a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = new PersonNetwork(GUID.generate()); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.update("people", person11.getId(), "networks", null, pn.toJSON().toString(), "Unable to PUT person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.update("people", person11.getId(), "networks", pn.getId(), pn.toJSON().toString(), "Unable to PUT a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.remove("people", person11.getId(), "networks", null, "Unable to DELETE person networks"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { PersonNetwork pn = networksMemberships.get(0); publicApiClient.setRequestContext(new RequestContext("-default-", person11.getId())); peopleProxy.remove("people", person11.getId(), "networks", pn.getId(), "Unable to DELETE a person network"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // user not a member of the network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems); peopleProxy.getNetworkMemberships(person11.getId(), createParams(expectedPaging, null)); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestNodeComments.java
@Test // TODO test embedded entity createdBy full visibility e.g. view comment by another user who's full details the caller can't see // TODO test update comment and modifiedBy in result is a person object public void testNodeComments() throws Exception { Comments commentsProxy = publicApiClient.comments(); Nodes nodesProxy = publicApiClient.nodes(); People peopleProxy = publicApiClient.people(); // Test Case cloud-1518 // Create comments // invalid node id try {/*from ww w. j a va 2 s . c om*/ Comment comment = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(GUID.generate(), comment); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // person from the same network - no permission try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Comment comment = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.createNodeComment(nodeRef1.getId(), comment); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2196 // multi-byte characters, create and update comments { Comment[] multiByteComments = new Comment[] { new Comment("", ""), new Comment("\u67e5\u770b\u5168\u90e8", "\u67e5\u770b\u5168\u90e8") }; Map<String, Comment> createdComments = new HashMap<String, Comment>(); for (Comment comment : multiByteComments) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment); createdComments.put(ret.getId(), ret); } // test that it is possible to add comment to custom type node commentsProxy.createNodeComment(customTypeObject.getId(), new Comment("Custom type node comment", "The Comment")); try { // test that it is not possible to add comment to cm:object node commentsProxy.createNodeComment(cmObjectNodeRef.getId(), new Comment("CM Object node comment", "The Comment")); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // get comments of the non-folder/non-document nodeRef try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); commentsProxy.getNodeComments(cmObjectNodeRef.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null)); List<Comment> retComments = resp.getList(); assertEquals(2, retComments.size()); for (Comment comment : retComments) { String commentId = comment.getId(); Comment expectedComment = createdComments.get(commentId); expectedComment.expected(comment); } Comment[] multiByteCommentUpdates = new Comment[] { new Comment("?", "?"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") }; Map<String, Comment> updatedComments = new HashMap<String, Comment>(); for (Comment comment : multiByteCommentUpdates) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment ret = commentsProxy.createNodeComment(nodeRef2.getId(), comment); updatedComments.put(ret.getId(), ret); } skipCount = 0; maxItems = 2; paging = getPaging(skipCount, maxItems); resp = commentsProxy.getNodeComments(nodeRef2.getId(), createParams(paging, null)); retComments = resp.getList(); assertEquals(2, retComments.size()); for (Comment comment : retComments) { String commentId = comment.getId(); Comment expectedComment = updatedComments.get(commentId); expectedComment.expected(comment); } } { // special characters Comment comment = new Comment("", "?*^&*(,"); List<Comment> expectedComments = new ArrayList<Comment>(1); expectedComments.add(comment); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(nodeRef3.getId(), comment); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef3.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } try { Comment comment = new Comment("", ""); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.createNodeComment(nodeRef2.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } DateFormat format = PublicApiDateFormat.getDateFormat(); final List<Comment> expectedComments = new ArrayList<Comment>(10); final List<Comment> comments = new ArrayList<Comment>(10); comments.add(new Comment("Test Comment 4", "Test Comment 4")); comments.add(new Comment("Test Comment 1", "Test Comment 1")); comments.add(new Comment("Test Comment 3", "Test Comment 3")); comments.add(new Comment("Test Comment 2", "Test Comment 2")); { Date time = new Date(); for (Comment comment : comments) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment resp = commentsProxy.createNodeComment(nodeRef1.getId(), comment); // check response assertEquals(comment.getContent(), resp.getContent()); assertTrue(format.parse(resp.getCreatedAt()).after(time)); person11.expected(resp.getCreatedBy()); assertNotNull(resp.getId()); expectedComments.add(resp); } // check activities have been raised repoService.generateFeed(); { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(0, Integer.MAX_VALUE); ListResponse<Activity> activities = peopleProxy.getActivities(person11.getId(), createParams(paging, null)); boolean found = false; for (Activity activity : activities.getList()) { String activityType = activity.getActivityType(); if (activityType.equals(ActivityType.COMMENT_CREATED)) { Map<String, Object> summary = activity.getSummary(); assertNotNull(summary); String objectId = (String) summary.get("objectId"); assertNotNull(objectId); if (nodeRef1.getId().equals(objectId)) { found = true; break; } } } assertTrue(found); } } // try to add a comment to a comment try { Comment comment = comments.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); expectedComments.add(newComment); commentsProxy.createNodeComment(newComment.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // try to add a comment to a tag try { Comment comment = comments.get(0); Tag tag = new Tag("taggification"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Tag addedTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); commentsProxy.createNodeComment(addedTag.getId(), comment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // add a comment to a folder { Date time = new Date(); Comment comment = comments.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment resp = commentsProxy.createNodeComment(folderNodeRef1.getId(), comment); // check response assertEquals(comment.getContent(), resp.getContent()); assertTrue(format.parse(resp.getCreatedAt()).after(time)); person11.expected(resp.getCreatedBy()); assertNotNull(resp.getId()); } Collections.sort(expectedComments); // Test Case cloud-2205 // Test Case cloud-2217 // Test Case cloud-1517 // pagination { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid node id - 404 try { int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments("invalid", createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId() + ";pwc", createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // suffix the node id with a version number { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId() + ";3.0", createParams(paging, null)); checkList(expectedComments.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // view comments of a document created by another person in the same network, who is not a member of the site // in which the comment resides try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // document owned by another person in another network, the user is not a member of that network try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1971 // invalid methods { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); List<Comment> nodeComments = resp.getList(); assertTrue(nodeComments.size() > 0); Comment comment = nodeComments.get(0); try { commentsProxy.create("nodes", nodeRef1.getId(), "comments", comment.getId(), null, "Unable to POST to a node comment"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.update("nodes", nodeRef1.getId(), "comments", null, null, "Unable to PUT node comments"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.getSingle("nodes", nodeRef1.getId(), "comments", comment.getId(), "Unable to GET a node comment"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { commentsProxy.remove("nodes", nodeRef1.getId(), "comments", null, "Unable to DELETE node comments"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } // Test Case cloud-2184 // update comments { Comment[] testComments = new Comment[] { new Comment("?", "?"), new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03") }; List<Comment> mlComments = new ArrayList<Comment>(); mlComments.add(new Comment("?", "?")); mlComments.add(new Comment("\u4e00\u4e01\u4e02\u4e03", "\u4e00\u4e01\u4e02\u4e03")); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); // create some comments Map<String, Comment> createdComments = new HashMap<String, Comment>(); for (Comment comment : testComments) { Comment ret = commentsProxy.createNodeComment(nodeRef4.getId(), comment); createdComments.put(ret.getId(), ret); } // update them with multi-byte content int i = 0; List<Comment> updatedComments = new ArrayList<Comment>(); for (Comment comment : createdComments.values()) { Comment updateComment = mlComments.get(i); Comment ret = commentsProxy.updateNodeComment(nodeRef4.getId(), comment.getId(), updateComment); updatedComments.add(ret); i++; } Collections.sort(updatedComments); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, mlComments.size(), mlComments.size()); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef4.getId(), createParams(paging, null)); checkList(updatedComments, paging.getExpectedPaging(), resp); } // invalid node id try { Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.updateNodeComment(GUID.generate(), comment.getId(), update); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid comment id try { Comment update = new Comment("Test Comment 4", "Test Comment 4"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.updateNodeComment(nodeRef1.getId(), GUID.generate(), update); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // person from the same network, not comment creator try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // person from a different network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person22.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Test Comment 4", "Test Comment 4"); commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // successful update { Date time = new Date(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = expectedComments.get(1); Comment update = new Comment("Updated comment", "Updated comment"); Comment resp = commentsProxy.updateNodeComment(nodeRef1.getId(), comment.getId(), update); Thread.sleep(100); // simulate a user edit to a comment Comment expected = new Comment(comment); expected.setTitle("Updated comment"); expected.setEdited(true); expected.setContent("Updated comment"); expected.setModifiedBy(repoService.getPerson(person11.getId())); expected.setModifiedAt(PublicApiDateFormat.getDateFormat().format(time)); expected.expected(resp); } // delete comments // invalid node ref try { Comment comment = expectedComments.get(1); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(GUID.generate(), comment.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid comment id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(nodeRef1.getId(), GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // successful delete { Comment toDelete = expectedComments.get(1); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); commentsProxy.removeNodeComment(nodeRef1.getId(), toDelete.getId()); // check it's been removed int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging expectedPaging = getPaging(skipCount, maxItems, expectedComments.size(), expectedComments.size()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<Comment> resp = commentsProxy.getNodeComments(nodeRef1.getId(), createParams(expectedPaging, null)); List<Comment> actualComments = resp.getList(); assertFalse(actualComments.contains(toDelete)); } // PUT: test update with null/empty comment try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = new Comment(); comment.setContent("my comment"); Comment createdComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); Comment updatedComment = new Comment(); updatedComment.setContent(null); commentsProxy.updateNodeComment(nodeRef1.getId(), createdComment.getId(), updatedComment); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestNodeRatings.java
@Test public void testNodeRatings() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());//from w w w. j a v a 2s .c o m final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(3); // create users 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()); final TestPerson person11 = people.get(0); final TestPerson person12 = people.get(1); final TestPerson person21 = people.get(2); final List<NodeRef> nodes = new ArrayList<NodeRef>(); final List<TestSite> sites = new ArrayList<TestSite>(); // Create site TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PRIVATE); sites.add(site); NodeRef nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 1", "Test Content"); nodes.add(nodeRef); nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 2", "Test Content"); nodes.add(nodeRef); return null; } }, person11.getId(), network1.getId()); final NodeRef nodeRef1 = nodes.get(0); Comments commentsProxy = publicApiClient.comments(); People peopleProxy = publicApiClient.people(); Nodes nodesProxy = publicApiClient.nodes(); DateFormat format = PublicApiDateFormat.getDateFormat(); // Test Case cloud-1976 // Create node ratings // try to add a rating to a comment try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Comment comment = new Comment("Test Comment", "Test Comment"); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); NodeRating rating = new NodeRating("likes", true); nodesProxy.createNodeRating(newComment.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // invalid node id try { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(GUID.generate(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // try to add a rating to a tag try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Tag tag = new Tag("testTag"); Tag newTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); NodeRating rating = new NodeRating("likes", true); nodesProxy.createNodeRating(newTag.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // invalid rating scheme try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("missingRatingScheme", Double.valueOf(1.0f))); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("likes", Double.valueOf(2.0f))); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("fiveStar", true)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid rating - can't rate own content for fiveStar try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), new NodeRating("fiveStar", 5)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // valid ratings { NodeRating rating = new NodeRating("likes", true); Date time = new Date(); // rate by multiple users in more than 1 network publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); NodeRating ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(1, null), ret.getAggregate()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(2, null), ret.getAggregate()); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); ret = nodesProxy.createNodeRating(nodeRef1.getId(), rating); assertEquals(rating.getMyRating(), ret.getMyRating()); assertTrue(format.parse(ret.getRatedAt()).after(time)); assertEquals(rating.getId(), ret.getId()); assertEquals(new NodeRating.Aggregate(2, null), ret.getAggregate()); // different network - unauthorized try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); nodesProxy.createNodeRating(nodeRef1.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2209 // Test Case cloud-2220 // Test Case cloud-1520 // check that the node ratings are there, test paging { // person11 publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); List<NodeRating> expectedRatings = repoService.getNodeRatings(person11.getId(), network1.getId(), nodeRef1); { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = expectedRatings.size(); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); // person12 List<NodeRating> expectedRatings = repoService.getNodeRatings(person12.getId(), network1.getId(), nodeRef1); { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 1; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(expectedRatings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } { // person21 publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); List<NodeRating> expectedRatings = Collections.emptyList(); try { int skipCount = 0; int maxItems = 1; Paging paging = getPaging(skipCount, maxItems, expectedRatings.size(), expectedRatings.size()); nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } } // invalid node id try { int skipCount = 1; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems); nodesProxy.getNodeRatings(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // check activities have been raised for the created ratings repoService.generateFeed(); { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(0, Integer.MAX_VALUE); ListResponse<Activity> activities = peopleProxy.getActivities(person11.getId(), createParams(paging, null)); boolean found = false; for (Activity activity : activities.getList()) { String activityType = activity.getActivityType(); if (activityType.equals(ActivityType.FILE_LIKED)) { Map<String, Object> summary = activity.getSummary(); assertNotNull(summary); String objectId = (String) summary.get("objectId"); assertNotNull(objectId); if (nodeRef1.getId().equals(objectId)) { found = true; break; } } } assertTrue(found); } } { // remove node rating NodeRating rating = new NodeRating("likes", null); try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); nodesProxy.removeNodeRating(nodeRef1.getId(), rating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); nodesProxy.removeNodeRating(nodeRef1.getId(), rating); } // check list { List<NodeRating> ratings = repoService.getNodeRatings(person11.getId(), network1.getId(), nodeRef1); int skipCount = 0; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); Paging paging = getPaging(skipCount, maxItems, ratings.size(), ratings.size()); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(paging, null)); checkList(ratings.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } } // get a node rating // 1977 { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); NodeRating expected = nodesProxy.createNodeRating(nodeRef1.getId(), rating); NodeRating actual = nodesProxy.getNodeRating(nodeRef1.getId(), "likes"); expected.expected(actual); } { // update node rating NodeRating rating = new NodeRating("fiveStar", 2); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); // create initial rating NodeRating createdRating = nodesProxy.createNodeRating(nodeRef1.getId(), rating); NodeRating updateRating = new NodeRating(createdRating.getId(), 5); // update - not supported try { nodesProxy.updateNodeRating(nodeRef1.getId(), updateRating); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } // Test Case cloud-1977 // invalid methods { try { // -ve test - cannot create multiple ratings in single POST call (unsupported) List<NodeRating> ratings = new ArrayList<>(2); ratings.add(new NodeRating("likes", true)); ratings.add(new NodeRating("likes", false)); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.create("nodes", nodeRef1.getId(), "ratings", null, JSONArray.toJSONString(ratings), "Unable to POST to multiple ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // get an arbitrary rating publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); ListResponse<NodeRating> resp = nodesProxy.getNodeRatings(nodeRef1.getId(), createParams(getPaging(0, Integer.MAX_VALUE), null)); List<NodeRating> nodeRatings = resp.getList(); assertTrue(nodeRatings.size() > 0); try { NodeRating rating = new NodeRating("likes", true); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.create("nodes", nodeRef1.getId(), "ratings", "likes", rating.toJSON().toString(), "Unable to POST to a node rating"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "ratings", null, null, "Unable to PUT node ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.remove("nodes", nodeRef1.getId(), "ratings", null, "Unable to DELETE node ratings"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { NodeRating rating = nodeRatings.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "ratings", rating.getId(), null, "Unable to PUT a node rating"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } }
From source file:org.alfresco.rest.api.tests.TestPersonSites.java
@Test public void testPersonSites() throws Exception { Set<MemberOfSite> personSites = new TreeSet<MemberOfSite>(); //Get last site for use with personRemoveSite TestSite personRemoveSite = sites.get(sites.size() - 1); sites.remove(sites.size() - 1);//from w w w. j a v a 2 s . c om personSites.addAll(network1.getSiteMemberships(person11.getId())); // Create some sites personSites.addAll(TenantUtil.runAsUserTenant(new TenantRunAsWork<List<MemberOfSite>>() { @Override public List<MemberOfSite> doWork() throws Exception { List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(); TestSite site = network1.createSite(SiteVisibility.PRIVATE); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); site = network1.createSite(SiteVisibility.PUBLIC); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); site = network1.createSite(SiteVisibility.MODERATED); expectedSites.add(new MemberOfSite(site, SiteRole.SiteManager)); return expectedSites; } }, person11.getId(), network1.getId())); personSites.addAll(TenantUtil.runAsUserTenant(new TenantRunAsWork<List<MemberOfSite>>() { @Override public List<MemberOfSite> doWork() throws Exception { List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(); TestSite site = network1.createSite(SiteVisibility.PRIVATE); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); site = network1.createSite(SiteVisibility.PUBLIC); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); site = network1.createSite(SiteVisibility.MODERATED); site.inviteToSite(person11.getId(), SiteRole.SiteConsumer); expectedSites.add(new MemberOfSite(site, SiteRole.SiteConsumer)); return expectedSites; } }, person12.getId(), network1.getId())); final List<MemberOfSite> expectedSites = new ArrayList<MemberOfSite>(personSites); Sites sitesProxy = publicApiClient.sites(); // Test Case cloud-1487 // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSites(GUID.generate(), null); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2200 // Test Case cloud-2213 // user should be able to list their sites { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); 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); } { int skipCount = 2; int maxItems = 8; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); 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); } // "-me-" user { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); 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); } // a user in another tenant should not be able to list a user's sites try { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); sitesProxy.getPersonSites(person11.getId(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // Test case cloud-1488 { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); MemberOfSite ret = sitesProxy.getPersonSite(person11.getId(), memberOfSite.getSiteId()); memberOfSite.expected(ret); } try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(GUID.generate(), memberOfSite.getSiteId()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(person11.getId(), GUID.generate()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1487 // unknown person id try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(GUID.generate(), memberOfSite.getSiteId()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getPersonSite(person11.getId(), GUID.generate()); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } { //Tests removing a person from the site publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.remove("people", person11.getId(), "sites", personRemoveSite.getSiteId(), "Unable to DELETE a person site"); try { sitesProxy.getPersonSite(person11.getId(), personRemoveSite.getSiteId()); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // TODO // person from external network listing user sites // Test Case cloud-1966 // Not allowed methods try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.create("people", person11.getId(), "sites", memberOfSite.getSiteId(), null, "Unable to POST to a person site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.create("people", person11.getId(), "sites", null, null, "Unable to POST to person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { MemberOfSite memberOfSite = expectedSites.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.update("people", person11.getId(), "sites", memberOfSite.getSiteId(), null, "Unable to PUT a person site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.update("people", person11.getId(), "sites", null, null, "Unable to PUT person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.remove("people", person11.getId(), "sites", null, "Unable to DELETE person sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } }
From source file:org.alfresco.rest.api.tests.TestSiteContainers.java
@Test public void testSiteContainers() throws Exception { Sites sitesProxy = publicApiClient.sites(); List<SiteContainer> expectedSiteContainers = network1.getSiteContainers(site1.getSiteId(), person11); {//from w w w.ja v a 2 s . c o m publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 2; maxItems = expectedSiteContainers.size(); paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); skipCount = 2; maxItems = expectedSiteContainers.size() + 2; paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); SiteContainer expectedSiteContainer = new SiteContainer(site1.getSiteId(), "test2", null); SiteContainer sc = sitesProxy.getSingleSiteContainer(site1.getSiteId(), "test2"); check(expectedSiteContainer, sc); } // site does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getSingleSiteContainer("gfyuosfgsf8y7s", "documentLibrary"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // container does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); sitesProxy.getSingleSiteContainer(site1.getSiteId(), "container1"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // site containers - site does not exist try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); sitesProxy.getSiteContainers(GUID.generate(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // a user in the same network, not invited to the site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> ret = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), ret); } // a user in a different network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person21.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // TODO a user in the same network, invited to the site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> ret = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), ret); } // person invited to site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person13.getId())); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteContainers.size(), expectedSiteContainers.size()); ListResponse<SiteContainer> resp = sitesProxy.getSiteContainers(site1.getSiteId(), createParams(paging, null)); checkList(expectedSiteContainers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid methods try { sitesProxy.create("sites", site1.getSiteId(), "containers", null, null, "Unable to POST to site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.create("sites", site1.getSiteId(), "containers", "documentLibrary", null, "Unable to POST to a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.update("sites", site1.getSiteId(), "containers", null, null, "Unable to PUT site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.update("sites", site1.getSiteId(), "containers", "documentLibrary", null, "Unable to PUT a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.remove("sites", site1.getSiteId(), "containers", null, "Unable to DELETE site containers"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { sitesProxy.remove("sites", site1.getSiteId(), "containers", "documentLibrary", "Unable to DELETE a site container"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // 1481 // user in external network, list site containers }
From source file:org.alfresco.rest.api.tests.TestSiteMembers.java
@Test public void testSiteMembers() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); final TestNetwork testNetwork = networksIt.next(); final List<String> networkPeople = testNetwork.getPersonIds(); String personId = networkPeople.get(0); Sites sitesProxy = publicApiClient.sites(); {// w ww .jav a 2 s . co m final List<SiteMember> expectedSiteMembers = new ArrayList<SiteMember>(); // Create a private site and invite some users // TODO create site members using public api rather than directly using the services TestSite testSite = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite testSite = testNetwork.createSite(SiteVisibility.PRIVATE); for (int i = 1; i <= 5; i++) { String inviteeId = networkPeople.get(i); testSite.inviteToSite(inviteeId, SiteRole.SiteConsumer); SiteMember sm = new SiteMember(inviteeId, repoService.getPerson(inviteeId), testSite.getSiteId(), SiteRole.SiteConsumer.toString()); expectedSiteMembers.add(sm); } return testSite; } }, personId, testNetwork.getId()); { SiteMember sm = new SiteMember(personId, repoService.getPerson(personId), testSite.getSiteId(), SiteRole.SiteManager.toString()); expectedSiteMembers.add(sm); Collections.sort(expectedSiteMembers); } // Test Case cloud-1482 { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(testSite.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(testSite.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); HttpResponse response = sitesProxy.getAll("sites", testSite.getSiteId(), "members", null, createParams(paging, Collections.singletonMap("includeSource", "true")), "Failed to get all site members"); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), SiteMember.parseSiteMembers(testSite.getSiteId(), response.getJsonResponse())); JSONObject source = sitesProxy.parseListSource(response.getJsonResponse()); Site sourceSite = SiteImpl.parseSite(source); assertNotNull(sourceSite); testSite.expected(sourceSite); } // invalid site id try { int skipCount = 2; int maxItems = 10; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.getSiteMembers(GUID.generate(), createParams(paging, null)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid methods try { SiteMember siteMember = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.update("sites", testSite.getSiteId(), "members", null, siteMember.toJSON().toString(), "Unable to PUT site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1965 try { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.create("sites", testSite.getSiteId(), "members", siteMember1.getMemberId(), siteMember1.toJSON().toString(), "Unable to POST to a site member"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.update("sites", testSite.getSiteId(), "members", null, siteMember1.toJSON().toString(), "Unable to PUT site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); sitesProxy.remove("sites", testSite.getSiteId(), "members", null, "Unable to DELETE site members"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // update site member { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); SiteMember ret = sitesProxy.updateSiteMember(testSite.getSiteId(), siteMember1); assertEquals(siteMember1.getRole(), ret.getRole()); Person expectedSiteMember = repoService.getPerson(siteMember1.getMemberId()); expectedSiteMember.expected(ret.getMember()); } // GET single site member { SiteMember siteMember1 = expectedSiteMembers.get(0); publicApiClient.setRequestContext(new RequestContext(testNetwork.getId(), personId)); SiteMember ret = sitesProxy.getSingleSiteMember(testSite.getSiteId(), siteMember1.getMemberId()); siteMember1.expected(ret); } } // test: user is member of different tenant, but has site membership(s) in common with the http request user { Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt(); assertTrue(accountsIt.hasNext()); final TestNetwork network1 = accountsIt.next(); assertTrue(accountsIt.hasNext()); final TestNetwork network2 = accountsIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(); // Create users TenantUtil.runAsSystemTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestPerson person = network1.createUser(); people.add(person); 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()); final TestPerson person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final TestPerson person4 = people.get(3); // Create site final TestSite site = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PUBLIC); return site; } }, person2.getId(), network1.getId()); // invalid role - 400 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), "dodgyRole")); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // user in network but not site member, try to create site member try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person3.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // unknown invitee - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember("dodgyUser", SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown site - 404 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember("dodgySite", new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // inviter is not a member of the site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // inviter is not a member of the site nor a member of the tenant try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person4.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); // TODO check that 404 is correct here - external user of network can't see public site?? } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember sm = new SiteMember(person1.getId(), SiteRole.SiteConsumer.toString()); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), sm); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteConsumer.toString(), siteMember.getRole()); } // already invited try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_CONFLICT, e.getHttpResponse().getStatusCode()); } // inviter is consumer member of the site, should not be able to add site member try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person4.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invitee from another network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person4.getId(), SiteRole.SiteContributor.toString())); fail(""); } catch (PublicApiException e) { assertEquals(e.getMessage(), HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // check site membership in GET List<SiteMember> expectedSiteMembers = site.getMembers(); { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList(expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } } // test: create site membership, remove it, get list of site memberships { Iterator<TestNetwork> accountsIt = getTestFixture().getNetworksIt(); assertTrue(accountsIt.hasNext()); final TestNetwork network1 = accountsIt.next(); assertTrue(accountsIt.hasNext()); final List<TestPerson> people = new ArrayList<TestPerson>(); // Create user 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()); TestPerson person1 = people.get(0); TestPerson person2 = people.get(1); // Create site TestSite site = TenantUtil.runAsUserTenant(new TenantRunAsWork<TestSite>() { @Override public TestSite doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PRIVATE); return site; } }, person2.getId(), network1.getId()); // remove site membership // for -me- user (PUBLICAPI-90) { // create a site member publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteContributor.toString(), siteMember.getRole()); SiteMember toRemove = new SiteMember("-me-"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); sitesProxy.removeSiteMember(site.getSiteId(), toRemove); } { // create a site member publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember siteMember = sitesProxy.createSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); assertEquals(person1.getId(), siteMember.getMemberId()); assertEquals(SiteRole.SiteContributor.toString(), siteMember.getRole()); // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(GUID.generate(), siteMember); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(site.getSiteId(), new SiteMember(GUID.generate())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.removeSiteMember(site.getSiteId(), siteMember); } // check site membership in GET List<SiteMember> expectedSiteMembers = site.getMembers(); assertFalse(expectedSiteMembers.contains(siteMember)); { int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList( expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } // update site membership // unknown site try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(GUID.generate(), siteMember); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(GUID.generate())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // invalid role try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(person1.getId(), "invalidRole")); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // user is not a member of the site - 400 try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); sitesProxy.updateSiteMember(site.getSiteId(), new SiteMember(person1.getId(), SiteRole.SiteContributor.toString())); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // successful update { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); SiteMember sm = new SiteMember(person1.getId(), SiteRole.SiteContributor.toString()); SiteMember ret = sitesProxy.createSiteMember(site.getSiteId(), sm); assertEquals(SiteRole.SiteContributor.toString(), ret.getRole()); person1.expected(ret.getMember()); sm = new SiteMember(person1.getId(), SiteRole.SiteCollaborator.toString()); ret = sitesProxy.updateSiteMember(site.getSiteId(), sm); assertEquals(SiteRole.SiteCollaborator.toString(), ret.getRole()); person1.expected(ret.getMember()); // check site membership in GET expectedSiteMembers = site.getMembers(); SiteMember toCheck = null; for (SiteMember sm1 : expectedSiteMembers) { if (sm1.getMemberId().equals(person1.getId())) { toCheck = sm1; } } assertNotNull(toCheck); // check that the update site membership is present assertEquals(sm.getRole(), toCheck.getRole()); // check that the role is correct int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSiteMembers.size(), null); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); ListResponse<SiteMember> siteMembers = sitesProxy.getSiteMembers(site.getSiteId(), createParams(paging, null)); checkList( expectedSiteMembers.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), siteMembers); } } } }
From source file:org.alfresco.rest.api.tests.TestSiteMembershipRequests.java
@Test public void testInvalidRequests() throws Exception { {/*from w w w . j a va 2 s . c o m*/ try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // unknown invitee SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(GUID.generate(), siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // unknown siteId SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(GUID.generate()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person12Id)); // create site membership for another user SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person11Id, siteMembershipRequest); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // cloud-2506 // get requests for another user try { log("cloud-2506"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); // get site membership requests for another user int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems); siteMembershipRequestsProxy.getSiteMembershipRequests(person12Id, createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // get site membership requests for unknown user try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); int skipCount = 0; int maxItems = 4; Paging paging = getPaging(skipCount, maxItems); siteMembershipRequestsProxy.getSiteMembershipRequests(GUID.generate(), createParams(paging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // DELETEs { { // cloud-2524 // runAs user != target user log("cloud-2524"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); // create moderated site invitation to delete SiteMembershipRequest siteMembershipRequest = new SiteMembershipRequest(); siteMembershipRequest.setId(person1ModeratedSites.get(0).getSiteId()); siteMembershipRequest.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.createSiteMembershipRequest(person14Id, siteMembershipRequest); SiteMembershipRequest request = getSiteMembershipRequest(network1.getId(), person14Id, person14Id); // user from another network try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person24Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // cloud-2525 // unknown personId try { log("cloud-2525"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(GUID.generate(), request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // cloud-2526 // cloud-2527 // unknown siteId try { log("cloud-2526"); log("cloud-2527"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, request.getId()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // unknown request id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person14Id)); siteMembershipRequestsProxy.cancelSiteMembershipRequest(person14Id, GUID.generate()); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } // PUTs // cloud-2519 - PUT to site membership requests try { log("cloud-2519"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); request.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.update("people", person11Id, "favorites", null, request.toJSON().toString(), "Unable to PUT site membership requests"); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // cloud-2520 - unknown request/site id try { log("cloud-2516"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person11Id)); SiteMembershipRequest request = new SiteMembershipRequest(); request.setId(GUID.generate()); request.setMessage("Please can I join your site?"); siteMembershipRequestsProxy.updateSiteMembershipRequest(person11Id, request); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } } }
From source file:org.alfresco.rest.api.tests.TestSites.java
@Test public void testSites() throws Exception { Sites sitesProxy = publicApiClient.sites(); // create & get sites (as person 2) {// w w w.ja v a2 s . c o m publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2Id)); String siteTitle = "site 1 " + System.currentTimeMillis(); Site site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); site1 = sitesProxy.createSite(site); Site ret = sitesProxy.getSite(site1.getSiteId()); site1.expected(ret); siteTitle = "site 2 " + System.currentTimeMillis(); site = new SiteImpl(siteTitle, SiteVisibility.PUBLIC.toString()); site2 = sitesProxy.createSite(site); ret = sitesProxy.getSite(site2.getSiteId()); site2.expected(ret); siteTitle = "site 3 " + System.currentTimeMillis(); site = new SiteImpl(siteTitle, SiteVisibility.MODERATED.toString()); site3 = sitesProxy.createSite(site); ret = sitesProxy.getSite(site3.getSiteId()); site3.expected(ret); } List<TestSite> expectedSites = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<TestSite>>() { @Override public List<TestSite> doWork() throws Exception { List<TestSite> sites = network1.getSites(person1Id); return sites; } }, person1Id, network1.getId()); { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), expectedSites.size()); ListResponse<Site> resp = sitesProxy.getSites(createParams(paging, null)); checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); int skipCount = 2; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedSites.size(), expectedSites.size()); ListResponse<Site> resp = sitesProxy.getSites(createParams(paging, null)); checkList(expectedSites.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // test create and delete site { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); String siteTitle = "my site !*#$ 123"; String siteDescription = "my site description"; SiteImpl site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); site.setDescription(siteDescription); Site ret = sitesProxy.createSite(site); String siteId = ret.getSiteId(); String expectedSiteId = "my-site-123"; Site siteExp = new SiteImpl(null, expectedSiteId, ret.getGuid(), siteTitle, siteDescription, SiteVisibility.PRIVATE.toString(), null, SiteRole.SiteManager); siteExp.expected(ret); ret = sitesProxy.getSite(siteId); siteExp.expected(ret); sitesProxy.removeSite(siteId); // -ve test - ie. cannot get site after it has been deleted sitesProxy.getSite(siteId, 404); } // test create + permanent delete + create { String siteId = "bbb"; String siteTitle = "BBB site"; Site site = new SiteImpl(null, siteId, null, siteTitle, null, SiteVisibility.PUBLIC.toString(), null, null); sitesProxy.createSite(site); // permanent site delete (bypass trashcan/archive) sitesProxy.removeSite(siteId, true, 204); sitesProxy.createSite(site); } // test create using site id = "true" (RA-1101) { String siteId = "true"; String siteTitle = "string"; String siteDescription = "string"; Site site = new SiteImpl(null, siteId, null, siteTitle, siteDescription, SiteVisibility.PUBLIC.toString(), null, null); sitesProxy.createSite(site); } // -ve tests { // invalid auth publicApiClient.setRequestContext(new RequestContext(network1.getId(), GUID.generate(), "password")); sitesProxy.getSite(site1.getSiteId(), 401); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); // -ve - cannot view or delete a private site sitesProxy.getSite(site1.getSiteId(), 404); sitesProxy.removeSite(site1.getSiteId(), false, 404); // -ve - test cannot delete a public site (but can view it) sitesProxy.getSite(site2.getSiteId(), 200); sitesProxy.removeSite(site2.getSiteId(), false, 403); // -ve - try to get unknown site sitesProxy.getSite(GUID.generate(), 404); SiteImpl site = new SiteImpl("my site 123", "invalidsitevisibility"); sitesProxy.createSite(site, 400); site = new SiteImpl(null, "invalid site id", null, "my site 123", null, SiteVisibility.PRIVATE.toString(), null, null); sitesProxy.createSite(site, 400); site = new SiteImpl(null, "invalidsiteid*", null, "my site 123", null, SiteVisibility.PRIVATE.toString(), null, null); sitesProxy.createSite(site, 400); site = new SiteImpl(); site.setSiteId(new String(new char[72]).replace('\0', 'a')); site.setTitle(new String(new char[256]).replace('\0', 'a')); site.setDescription(new String(new char[512]).replace('\0', 'a')); site.setVisibility(SiteVisibility.PUBLIC.toString()); sitesProxy.createSite(site, 201); // -ve - site id too long site = new SiteImpl(); site.setSiteId(new String(new char[73]).replace('\0', 'a')); site.setTitle("ok"); site.setDescription("ok"); site.setVisibility(SiteVisibility.PUBLIC.toString()); sitesProxy.createSite(site, 400); // -ve - site title too long site = new SiteImpl(); site.setSiteId("ok"); site.setTitle(new String(new char[257]).replace('\0', 'a')); site.setDescription("ok"); site.setVisibility(SiteVisibility.PUBLIC.toString()); sitesProxy.createSite(site, 400); // -ve - site description too long site = new SiteImpl(); site.setSiteId("ok"); site.setTitle("ok"); site.setDescription(new String(new char[513]).replace('\0', 'a')); site.setVisibility(SiteVisibility.PUBLIC.toString()); sitesProxy.createSite(site, 400); // site already exists (409) String siteTitle = "my site 456"; site = new SiteImpl(siteTitle, SiteVisibility.PRIVATE.toString()); String siteId = sitesProxy.createSite(site, 201).getSiteId(); sitesProxy.createSite(site, 409); sitesProxy.removeSite(siteId); // cleanup sitesProxy.removeSite(GUID.generate(), false, 404); } // -ve - cannot create site with same site id as an existing site (even if it is in the trashcan/archive) { String siteId = "aaa"; String siteTitle = "AAA site"; Site site = new SiteImpl(null, siteId, null, siteTitle, null, SiteVisibility.PUBLIC.toString(), null, null); String siteNodeId = sitesProxy.createSite(site).getGuid(); // -ve - duplicate site id sitesProxy.createSite(site, 409); sitesProxy.removeSite(siteId); // -ve - duplicate site id (even if site is in trashcan) sitesProxy.createSite(site, 409); // now purge the site sitesProxy.remove("deleted-nodes", siteNodeId, null, null, "Cannot purge site"); sitesProxy.createSite(site); } // -ve - minor: error code if updating via nodes api (REPO-512) { String siteId = "zzz"; String siteTitle = "ZZZ site"; Site site = new SiteImpl(null, siteId, null, siteTitle, null, SiteVisibility.PRIVATE.toString(), null, null); String siteNodeId = sitesProxy.createSite(site).getGuid(); // try to update to invalid site visibility JSONObject prop = new JSONObject(); prop.put("st:siteVisibility", "INVALID"); JSONObject properties = new JSONObject(); properties.put("properties", new JSONObject(prop)); try { sitesProxy.update("nodes", siteNodeId, null, null, properties.toJSONString(), null); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } sitesProxy.removeSite(siteId); // cleanup } // -ve test - cannot create multiple sites in single POST call (unsupported) { List<Site> sites = new ArrayList<>(2); sites.add(new SiteImpl(null, "siteA1", null, "siteA1", null, SiteVisibility.PRIVATE.toString(), null, null)); sites.add(new SiteImpl(null, "siteB1", null, "siteB1", null, SiteVisibility.PRIVATE.toString(), null, null)); sitesProxy.create("sites", null, null, null, JSONArray.toJSONString(sites), null, 405); } // -ve tests - belts-and-braces for unsupported methods { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1Id)); // -ve - cannot call POST method on /sites/siteId try { sitesProxy.create("sites", "site", null, null, null, "Unable to POST to a site"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // -ve - cannot call DELETE method on /sites try { sitesProxy.remove("sites", null, null, null, "Unable to DELETE sites"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } // Test Case cloud-1478 // Test Case cloud-1479 // user invited to network and user invited to site // user invited to network and user not invited to site }
From source file:org.alfresco.rest.api.tests.TestTags.java
@Test public void testTags() throws Exception { Iterator<TestNetwork> networksIt = getTestFixture().getNetworksIt(); assertTrue(networksIt.hasNext());//from w w w.j av a2s . c om final TestNetwork network1 = networksIt.next(); assertTrue(networksIt.hasNext()); final TestNetwork network2 = networksIt.next(); final List<TestPerson> people = new ArrayList<TestPerson>(3); // create users and some preferences 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()); final TestPerson person1 = people.get(0); final TestPerson person2 = people.get(1); final TestPerson person3 = people.get(2); final List<NodeRef> nodes = new ArrayList<NodeRef>(); final List<TestSite> sites = new ArrayList<TestSite>(); // Create site TenantUtil.runAsUserTenant(new TenantRunAsWork<Void>() { @Override public Void doWork() throws Exception { TestSite site = network1.createSite(SiteVisibility.PRIVATE); sites.add(site); NodeRef nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc", "Test Content"); nodes.add(nodeRef); nodeRef = repoService.createDocument(site.getContainerNodeRef("documentLibrary"), "Test Doc 1", "Test Content 1"); nodes.add(nodeRef); return null; } }, person1.getId(), network1.getId()); final NodeRef nodeRef1 = nodes.get(0); final NodeRef nodeRef2 = nodes.get(1); Nodes nodesProxy = publicApiClient.nodes(); Comments commentsProxy = publicApiClient.comments(); Tags tagsProxy = publicApiClient.tags(); final List<Tag> tags = new ArrayList<Tag>(); tags.add(new Tag("tag 1")); tags.add(new Tag("tag 9")); tags.add(new Tag("other tag 3")); tags.add(new Tag("my tag 1")); tags.add(new Tag("tag 5")); // try to add a tag to a comment try { Comment comment = new Comment("Test Comment", "Test Comment"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Comment newComment = commentsProxy.createNodeComment(nodeRef1.getId(), comment); Tag tag = new Tag("testTag"); nodesProxy.createNodeTag(newComment.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // try to add a tag to a tag try { Tag tag = new Tag("testTag"); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag newTag = nodesProxy.createNodeTag(nodeRef1.getId(), tag); nodesProxy.createNodeTag(newTag.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2221 // Test Case cloud-2222 // multi-byte characters, special characters, create and update tags { Tag[] multiByteTags = new Tag[] { new Tag("\u67e5\u770b\u5168\u90e8"), new Tag("\u67e5\u770b\u5168\u91e8"), new Tag("%^&%&$^@") }; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); // first, create tags Map<String, Tag> createdTags = new HashMap<String, Tag>(); for (Tag tag : multiByteTags) { Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); createdTags.put(ret.getId(), ret); } int skipCount = 0; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef2.getId(), createParams(paging, null)); List<Tag> retTags = resp.getList(); assertEquals(createdTags.size(), retTags.size()); for (Tag tag : retTags) { String tagId = tag.getId(); Tag expectedTag = createdTags.get(tagId); expectedTag.expected(tag); } // special characters and update tags // { // Tag[] specialCharacterTags = new Tag[] // { // new Tag("\u67e5\u770b\u5168\u90e8"), // new Tag("\u67e5\u770b\u5168\u91e8") // }; // // createdTags = new HashMap<String, Tag>(); // for(Tag tag : specialCharacterTags) // { // Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); // createdTags.put(ret.getId(), ret); // } // // // Tag tag = new Tag("%^&%&$^@"); // Tag ret = nodesProxy.createNodeTag(nodeRef2.getId(), tag); // createdTags.put(ret.getId(), ret); // } // update tags try { // update with an empty tag i.e. "" -> bad request Tag tag = new Tag(""); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(nodeRef2.getId(), tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } List<Tag> tagUpdates = new ArrayList<Tag>(createdTags.values()); tagUpdates.get(0).setTag("\u4e00\u4e01\u4e02\u4e10"); tagUpdates.get(1).setTag("\u4e00\u4e01\u4e12\u4e11"); tagUpdates.get(2).setTag("\u4e00\u4e01\u4e12\u4e12"); Map<String, Tag> updatedTags = new HashMap<String, Tag>(); for (Tag tag : tagUpdates) { Tag ret = tagsProxy.update(tag); assertNotNull(ret.getId()); assertNotNull(ret.getTag()); // tag.expected(ret); disabled because tag id changes updatedTags.put(ret.getId(), ret); } // get updated tags List<Tag> expectedNodeTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(nodeRef2); return tags; } }, person1.getId(), network1.getId()); skipCount = 0; maxItems = tagUpdates.size(); paging = getPaging(skipCount, maxItems, tagUpdates.size(), tagUpdates.size()); resp = nodesProxy.getNodeTags(nodeRef2.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { List<Tag> createdTags = new ArrayList<Tag>(); // Test Case cloud-1975 for (Tag tag : tags) { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag ret = nodesProxy.createNodeTag(nodeRef1.getId(), tag); assertEquals(tag.getTag(), ret.getTag()); assertNotNull(ret.getId()); createdTags.add(ret); } // update tag, empty string try { Tag tag = new Tag(createdTags.get(0).getId(), ""); tagsProxy.update(tag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpResponse().getStatusCode()); } // invalid node id try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(GUID.generate(), tags.get(0)); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1973 // Test Case cloud-2208 // Test Case cloud-2219 // check that the tags are there in the node tags, test paging List<Tag> expectedNodeTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(nodeRef1); return tags; } }, person1.getId(), network1.getId()); { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } { int skipCount = 2; int maxItems = Integer.MAX_VALUE; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); } // invalid node try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> allTags = nodesProxy.getNodeTags("invalidNode", createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // user from another account - 403 try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person3.getId())); Paging expectedPaging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); nodesProxy.getNodeTags(nodeRef1.getId(), createParams(expectedPaging, null)); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_UNAUTHORIZED, e.getHttpResponse().getStatusCode()); } // another user from the same account try { int skipCount = 0; int maxItems = 2; publicApiClient.setRequestContext(new RequestContext(network1.getId(), person2.getId())); Paging paging = getPaging(skipCount, maxItems, expectedNodeTags.size(), expectedNodeTags.size()); ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(paging, null)); checkList(expectedNodeTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), resp); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_FORBIDDEN, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1519 // Test Case cloud-2206 // Test Case cloud-2218 // check that the tags are there in the network tags, test paging // TODO for user from another network who is invited to this network List<Tag> expectedNetworkTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(); return tags; } }, person1.getId(), network1.getId()); { int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems, expectedNetworkTags.size(), null); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); checkList(expectedNetworkTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); } { int skipCount = 2; int maxItems = Integer.MAX_VALUE; Paging paging = getPaging(skipCount, maxItems, expectedNetworkTags.size(), null); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); checkList(expectedNetworkTags.subList(skipCount, skipCount + paging.getExpectedPaging().getCount()), paging.getExpectedPaging(), allTags); } } { // Try a create with the same tag value Tag tag = tags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(nodeRef1.getId(), tag); } try { // Invalid node id Tag tag = tags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.createNodeTag(GUID.generate(), tag); fail(""); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-2183 // update tags { // get a network tag int skipCount = 0; int maxItems = 2; Paging paging = getPaging(skipCount, maxItems); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); ListResponse<Tag> allTags = tagsProxy.getTags(createParams(paging, null)); assertTrue(allTags.getList().size() > 0); // and update it Tag tag = allTags.getList().get(0); String newTagValue = GUID.generate(); Tag newTag = new Tag(tag.getId(), newTagValue); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); Tag ret = tagsProxy.update(newTag); assertEquals(newTagValue, ret.getTag()); // assertNotEquals(tag.getId, ret.getId()); // disabled due to CLOUD-628 } // update invalid/unknown tag id try { Tag unknownTag = new Tag(GUID.generate(), GUID.generate()); tagsProxy.update(unknownTag); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_NOT_FOUND, e.getHttpResponse().getStatusCode()); } // Test Case cloud-1972 // Test Case cloud-1974 // not allowed methods { List<Tag> networkTags = TenantUtil.runAsUserTenant(new TenantRunAsWork<List<Tag>>() { @Override public List<Tag> doWork() throws Exception { List<Tag> tags = repoService.getTags(); return tags; } }, person1.getId(), network1.getId()); assertTrue(networkTags.size() > 0); try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "tags", null, null, "Unable to PUT node tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("nodes", nodeRef1.getId(), "tags", null, "Unable to DELETE node tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("nodes", nodeRef1.getId(), "tags", tag.getId(), null, "Unable to PUT node tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.create("tags", null, null, null, tag.toJSON().toString(), "Unable to POST to tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.update("tags", null, null, null, tag.toJSON().toString(), "Unable to PUT tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("tags", null, null, null, "Unable to DELETE tags"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.create("tags", tag.getId(), null, null, tag.toJSON().toString(), "Unable to POST to a tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.remove("tags", tag.getId(), null, null, "Unable to DELETE a tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } // delete node tag { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.removeNodeTag(nodeRef1.getId(), tag.getId()); // check that the tag is gone ListResponse<Tag> resp = nodesProxy.getNodeTags(nodeRef1.getId(), createParams(getPaging(0, Integer.MAX_VALUE), null)); List<Tag> nodeTags = resp.getList(); assertTrue(!nodeTags.contains(tag)); } try { Tag tag = networkTags.get(0); publicApiClient.setRequestContext(new RequestContext(network1.getId(), person1.getId())); nodesProxy.getSingle("nodes", nodeRef1.getId(), "tags", tag.getId(), "Unable to GET node tag"); fail(); } catch (PublicApiException e) { assertEquals(HttpStatus.SC_METHOD_NOT_ALLOWED, e.getHttpResponse().getStatusCode()); } } }