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()); }
@Test public void testDeleteDocumentsFailsWithInvalidSubStage() throws Throwable { // Make sure we are working with the service create on the host ServiceDocumentDeleteTaskService service = new ServiceDocumentDeleteTaskService(); service.setHost(host); host.startFactory(service); waitForServiceAvailability(ServiceDocumentDeleteTaskService.FACTORY_LINK); // Create a state we are going to work with ServiceDocumentDeleteTaskState state = new ServiceDocumentDeleteTaskState(); state.taskInfo = TaskState.createAsStarted(); state.taskSubStage = DefaultSubStage.COMPLETED; state.serviceTaskCallback = ServiceTaskCallback.create(ServiceDocumentDeleteTaskService.FACTORY_LINK); state.deleteDocumentKind = ""; // We need to actually create the state, so we have a documentSelfLink to update when the task fails ServiceDocumentDeleteTaskState created = doPost(state, ServiceDocumentDeleteTaskService.FACTORY_LINK); waitForTaskCompletion(created.documentSelfLink, ServiceDocumentDeleteTaskState.class); // get the documentSelfLink state.documentSelfLink = created.documentSelfLink; // Test that the task will fail with wrong substage service.handleStartedStagePatch(state); waitForTaskError(state.documentSelfLink, ServiceDocumentDeleteTaskState.class); }
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()); }
@Before @Override public void setUp() throws Throwable { super.setUp(); request = new ServiceDocumentDeleteTaskState(); request.deleteDocumentKind = EventLogState.class.getCanonicalName().replace(".", ":"); }