private void verifyUserHasFullAccessToResourcesThroughApi(String userEmail, ServiceDocument state, String factoryServiceSelfLink, boolean isPutSupported) throws Throwable { // use specified role host.assumeIdentity(buildUserServicePath(userEmail)); // POST ServiceDocument createdState = createState(state, factoryServiceSelfLink); assertEquals(state, createdState); // GET ServiceDocument retrievedState = getDocument(state.getClass(), createdState.documentSelfLink); assertEquals(createdState, retrievedState); // PUT if (isPutSupported) { retrievedState = doPut(createdState); assertEquals(createdState, retrievedState); } else { doPutNotSupportedVerification(createdState, createdState.documentSelfLink); } // DELETE doDelete(UriUtils.buildUri(host, createdState.documentSelfLink), false); retrievedState = getDocumentNoWait(state.getClass(), createdState.documentSelfLink); assertNull(retrievedState); }
@Before public void setUp() throws Throwable { if (createdProject == null) { createdProject = createProjectWithRoles(); } createEventLog(); createRequestStatus(); }
private <T extends ServiceDocument> T createState(T state, String factorySelfLink) throws Throwable { T createdState = doPost(state, factorySelfLink); assertNotNull(createdState.documentSelfLink); assertEquals(state, createdState); return createdState; }
private void verifyBasicUserHasNoAccessToResourcesThroughApi(ServiceDocument state, String factoryServiceSelfLink) throws Throwable { // use admin for creation of the state host.assumeIdentity(buildUserServicePath(USER_EMAIL_ADMIN)); ServiceDocument createdState = createState(state, factoryServiceSelfLink); // switch role to basic user host.assumeIdentity(buildUserServicePath(USER_EMAIL_BASIC_USER)); // GET doGetWithRestrictionVerification(createdState, factoryServiceSelfLink, state.getClass().getName()); // POST doPostWithRestrictionVerification(createdState, factoryServiceSelfLink); // PUT doPutWithRestrictionVerification(createdState, factoryServiceSelfLink); // DELETE doDeleteWithRestrictionVerification(createdState, factoryServiceSelfLink); // use admin for clean up of the state host.assumeIdentity(buildUserServicePath(USER_EMAIL_ADMIN)); doDelete(UriUtils.buildUri(host, createdState.documentSelfLink), false); ServiceDocument deletedState = getDocumentNoWait(state.getClass(), createdState.documentSelfLink); assertNull(deletedState); }
private void verifyDeleteSuccessfulAsUser(String userEmail, ServiceDocument state, String factoryServiceSelfLink) throws Throwable { host.assumeIdentity(buildUserServicePath(userEmail)); createState(state, factoryServiceSelfLink); List<String> allStatesLinks = getDocumentLinksOfType(state.getClass()); Assert.assertEquals(1, allStatesLinks.size()); ServiceDocumentDeleteTaskState taskState = new ServiceDocumentDeleteTaskState(); taskState.deleteDocumentKind = Utils.buildKind(state.getClass()); taskState = doPost(taskState, ServiceDocumentDeleteTaskService.FACTORY_LINK); waitForTaskCompletion(taskState.documentSelfLink, ServiceDocumentDeleteTaskState.class); allStatesLinks = getDocumentLinksOfType(state.getClass()); Assert.assertEquals(0, allStatesLinks.size()); }
private void verifyDeleteUnsuccessfulAsUser(String userEmail, ServiceDocument state, String factoryServiceSelfLink) throws Throwable { // use admin to create the state host.assumeIdentity(buildUserServicePath(USER_EMAIL_ADMIN)); createState(state, factoryServiceSelfLink); List<String> allStatesLinks = getDocumentLinksOfType(state.getClass()); Assert.assertEquals(1, allStatesLinks.size()); // switch role to specified host.assumeIdentity(buildUserServicePath(userEmail)); ServiceDocumentDeleteTaskState taskState = new ServiceDocumentDeleteTaskState(); taskState.deleteDocumentKind = Utils.buildKind(state.getClass()); String errorMessage = String.format(UNAUTHORIZED_ACCESS_FOR_ACTION_MESSAGE, Action.POST); doPostWithRestrictionVerification(taskState, ServiceDocumentDeleteTaskService.FACTORY_LINK ); // use admin to get the states host.assumeIdentity(buildUserServicePath(USER_EMAIL_ADMIN)); allStatesLinks = getDocumentLinksOfType(state.getClass()); Assert.assertEquals(1, allStatesLinks.size()); }
private void doPutNotSupportedVerification(ServiceDocument doc, String selfLink) throws Throwable { host.log("PUT to %s", selfLink); try { doPut(doc); fail(EXPECTED_ILLEGAL_STATE_EXCEPTION_MESSAGE); } catch (IllegalStateException e) { assertNotSupportedMessage(e); } }
private <T extends ServiceDocument> void assertEquals(T state1, T state2) { switch (state1.getClass().getSimpleName()) { case "EventLogState": assertEquals((EventLogState) state1, (EventLogState) state2); break; case "RequestStatus": assertEquals((RequestStatus) state1, (RequestStatus) state2); break; default: Assert.assertEquals(state1, state2); } }
private void verifyDeleteUnsuccessfulThroughApiAsUser(String userMail, ServiceDocument state, String factoryServiceSelfLink, boolean isPutSupported) throws Throwable { host.assumeIdentity(buildUserServicePath(userMail)); // POST ServiceDocument createdState = createState(state, factoryServiceSelfLink); assertEquals(state, createdState); // GET ServiceDocument retrievedState = getDocument(state.getClass(), createdState.documentSelfLink); assertEquals(createdState, retrievedState); // PUT if (isPutSupported) { retrievedState = doPut(createdState); assertEquals(createdState, retrievedState); } else { doPutNotSupportedVerification(createdState, createdState.documentSelfLink); } // DELETE doDeleteWithRestrictionVerification(createdState, factoryServiceSelfLink); // use admin for clean up of the state host.assumeIdentity(buildUserServicePath(USER_EMAIL_ADMIN)); doDelete(UriUtils.buildUri(host, createdState.documentSelfLink), false); ServiceDocument deletedState = getDocumentNoWait(RequestStatus.class, createdState.documentSelfLink); assertNull(deletedState); }