@Test public void testDeleteWorkflowSuccessfulLogicalDeleteWithTrueDeleteParam() throws Exception { WorkflowRestService wrs = new WorkflowRestService(); Authenticator auth = mock(Authenticator.class); wrs.setAuthenticator(auth); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.DELETE_ALL_WORKFLOWS); WorkflowDAO workflowDAO = mock(WorkflowDAO.class); wrs.setWorkflowDAO(workflowDAO); Workflow w = new Workflow(); when(workflowDAO.getWorkflowById("1", u)).thenReturn(w); DeleteReportImpl deleteResp = new DeleteReportImpl(); deleteResp.setSuccessful(true); deleteResp.setId(1L); when(workflowDAO.delete(1L, Boolean.TRUE)).thenReturn(deleteResp); when(auth.authenticate(null)).thenReturn(u); EventDAO eventDAO = mock(EventDAO.class); wrs.setEventDAO(eventDAO); DeleteReport dwr = wrs.deleteWorkflow(1L, Boolean.TRUE, null, null, null, null); assertTrue(dwr != null); assertTrue(dwr.getId() == 1L); assertTrue(dwr.getReason(), dwr.getReason() == null); assertTrue(dwr.isSuccessful()); verify(workflowDAO).delete(1L, Boolean.TRUE); // verify(eventBuilder).setAsDeleteWorkflowEvent(event, w); }
@Test public void testDeleteWorkflowUserAuthorizedToDeleteOwnWorkflowButWorkflowOwneDoesNotMatch() throws Exception { WorkflowRestService wrs = new WorkflowRestService(); Authenticator auth = mock(Authenticator.class); wrs.setAuthenticator(auth); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.DELETE_THEIR_WORKFLOWS); WorkflowDAO workflowDAO = mock(WorkflowDAO.class); wrs.setWorkflowDAO(workflowDAO); Workflow w = new Workflow(); w.setOwner("joe"); when(workflowDAO.getWorkflowById("1", u)).thenReturn(w); when(auth.authenticate(null)).thenReturn(u); DeleteReport dwr = wrs.deleteWorkflow(1L, null, null, null, null, null); assertTrue(dwr != null); assertTrue(dwr.getId() == 1L); assertTrue(dwr.getReason().equals("bob does not have permission to delete Workflow (1)")); assertFalse(dwr.isSuccessful()); }
// test updateWorkflow deleted and version true/false @Test public void testUpdateWorkflowWithChangesToDeletedAndVersion() throws Exception { Authenticator auth = mock(Authenticator.class); HttpServletRequest request = mock(HttpServletRequest.class); WorkflowDAO workflowDAO = new WorkflowObjectifyDAOImpl(null); Workflow w = new Workflow(); w.setName("wf"); w = workflowDAO.insert(w); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.UPDATE_ALL_WORKFLOWS); when(auth.authenticate(request)).thenReturn(u); WorkflowRestService wrs = new WorkflowRestService(); wrs.setAuthenticator(auth); w = wrs.updateWorkflow(w.getId(), null, Boolean.TRUE, 2, request); assertTrue(w.getId() != null); assertTrue(w.isDeleted() == true); assertTrue(w.getVersion() == 2); w = wrs.updateWorkflow(w.getId(), null, Boolean.FALSE, 3, request); assertTrue(w.getId() != null); assertTrue(w.isDeleted() == false); assertTrue(w.getVersion() == 3); w = wrs.updateWorkflow(w.getId(), null, null, null, request); assertTrue(w.getId() != null); assertTrue(w.isDeleted() == false); assertTrue(w.getVersion() == 3); }
@Test public void testDeleteWorkflowButNotAuthorized() throws Exception { WorkflowRestService wrs = new WorkflowRestService(); Authenticator auth = mock(Authenticator.class); wrs.setAuthenticator(auth); User u = new User(); u.setPermissions(Permission.NONE); when(auth.authenticate(null)).thenReturn(u); DeleteReport dr = wrs.deleteWorkflow(1L, null, null, null, null, null); assertTrue(dr != null); assertTrue(dr.isSuccessful() == false); assertTrue(dr.getReason().equals("Not authorized to delete")); }
// test updateWorkflow resave non existant workflow @Test public void testUpdateWorkflowResaveNonExistantWorkflow() throws Exception { Authenticator auth = mock(Authenticator.class); HttpServletRequest request = mock(HttpServletRequest.class); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.UPDATE_ALL_WORKFLOWS); when(auth.authenticate(request)).thenReturn(u); WorkflowRestService wrs = new WorkflowRestService(); wrs.setAuthenticator(auth); try { wrs.updateWorkflow(1L, Boolean.TRUE, null, null, request); fail("Expected exception"); } catch (WebApplicationException ex) { assertTrue(ex.getMessage(), ex.getMessage().contains("There was an error resaving Workflow")); } }
// test updateWorkflow no permission @Test public void testUpdateWorkflowNoPermission() throws Exception { Authenticator auth = mock(Authenticator.class); HttpServletRequest request = mock(HttpServletRequest.class); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.NONE); when(auth.authenticate(request)).thenReturn(u); WorkflowRestService wrs = new WorkflowRestService(); wrs.setAuthenticator(auth); try { wrs.updateWorkflow(1L, null, null, null, request); fail("Expected exception"); } catch (WebApplicationException wae) { assertTrue( wae.getMessage(), wae.getResponse().getStatus() == HttpServletResponse.SC_UNAUTHORIZED); } }
@Test public void testDeleteWorkflowAllAuthorizationButNoWorkflowFound() throws Exception { WorkflowRestService wrs = new WorkflowRestService(); Authenticator auth = mock(Authenticator.class); wrs.setAuthenticator(auth); User u = new User(); u.setLogin("bob"); u.setPermissions(Permission.DELETE_ALL_WORKFLOWS); WorkflowDAO workflowDAO = mock(WorkflowDAO.class); wrs.setWorkflowDAO(workflowDAO); when(workflowDAO.getWorkflowById("1", u)).thenReturn(null); when(auth.authenticate(null)).thenReturn(u); DeleteReport dwr = wrs.deleteWorkflow(1L, null, null, null, null, null); assertTrue(dwr != null); assertTrue(dwr.getId() == 1L); assertTrue(dwr.getReason().equals("Workflow (1) not found")); assertFalse(dwr.isSuccessful()); }