Ejemplo n.º 1
0
 /**
  * Run the following test case.
  *
  * <ol>
  *   <li>Run a multiple search query, with multiple requests, with *win* or *lin* as the
  *       parameter, searching for VMs
  *   <li>Force a special failure with an HTTP status code = 0, this is an ignored failure (escape
  *       key pressed)
  *   <li>Check to make sure the appropriate query start and query complete events are fired
  * </ol>
  */
 @Test
 public void testRunMultipleQueries_ignored_failure_multiple() {
   // Don't immediately call process until both queries are in the queue.
   fakeScheduler.setThreshold(2);
   ArrayList<VdcQueryType> queryTypeList = new ArrayList<VdcQueryType>();
   queryTypeList.add(VdcQueryType.Search);
   queryTypeList.add(VdcQueryType.Search);
   ArrayList<VdcQueryParametersBase> queryParamsList = new ArrayList<VdcQueryParametersBase>();
   queryParamsList.add(new SearchParameters("*win*", SearchType.VM)); // $NON-NLS-1$
   queryParamsList.add(new SearchParameters("*lin*", SearchType.VM)); // $NON-NLS-1$
   frontend.runMultipleQueries(
       queryTypeList, queryParamsList, mockMultipleQueryCallback, "test"); // $NON-NLS-1$
   StatusCodeException exception = new StatusCodeException(0, "0 status code"); // $NON-NLS-1$
   // Repeat 4 times, because of retries.
   for (int i = 1; i < RETRY_COUNT; i++) {
     // Reset the count so we can re-add both entries again.
     fakeScheduler.resetCount();
     verify(mockService, times(i))
         .RunMultipleQueries(
             eq(queryTypeList), eq(queryParamsList), callbackMultipleQueries.capture());
     // Call the failure handler.
     callbackMultipleQueries.getValue().onFailure(exception);
   }
   verify(mockFrontendFailureEvent, never())
       .raise(eq(Frontend.class), any(FrontendFailureEventArgs.class));
 }
Ejemplo n.º 2
0
 /**
  * Run the following test case.
  *
  * <ol>
  *   <li>Run a multiple search query, with only multiple requests, with *win* / *lin* as the
  *       parameter, searching for VMs
  *   <li>Force a failure with an HTTP status code = 404
  *   <li>Check to make sure the appropriate query start and query complete events are fired
  * </ol>
  */
 @Test
 public void testRunMultipleQueries_404_failure() {
   // Don't immediately call process until both queries are in the queue.
   fakeScheduler.setThreshold(2);
   when(mockConstants.requestToServerFailedWithCode())
       .thenReturn("A Request to the Server failed with the following Status Code"); // $NON-NLS-1$
   ArrayList<VdcQueryType> queryTypeList = new ArrayList<VdcQueryType>();
   queryTypeList.add(VdcQueryType.Search);
   queryTypeList.add(VdcQueryType.Search);
   ArrayList<VdcQueryParametersBase> queryParamsList = new ArrayList<VdcQueryParametersBase>();
   queryParamsList.add(new SearchParameters("*win*", SearchType.VM)); // $NON-NLS-1$
   queryParamsList.add(new SearchParameters("*lin*", SearchType.VM)); // $NON-NLS-1$
   frontend.runMultipleQueries(
       queryTypeList, queryParamsList, mockMultipleQueryCallback, "test"); // $NON-NLS-1$
   StatusCodeException exception =
       new StatusCodeException(HttpServletResponse.SC_NOT_FOUND, "404 status code"); // $NON-NLS-1$
   // Repeat 4 times, because of retries.
   for (int i = 1; i < RETRY_COUNT; i++) {
     // Reset the count so we can re-add both entries again.
     fakeScheduler.resetCount();
     verify(mockService, times(i))
         .RunMultipleQueries(
             eq(queryTypeList), eq(queryParamsList), callbackMultipleQueries.capture());
     // Call the failure handler.
     callbackMultipleQueries.getValue().onFailure(exception);
   }
   ArgumentCaptor<FrontendFailureEventArgs> eventArgs =
       ArgumentCaptor.forClass(FrontendFailureEventArgs.class);
   verify(mockFrontendFailureEvent).raise(eq(Frontend.class), eventArgs.capture());
   assertEquals(
       "Message text didn't match", //$NON-NLS-1$
       "A Request to the Server failed with the following Status Code: 404", //$NON-NLS-1$
       eventArgs.getValue().getMessage().getText());
 }
Ejemplo n.º 3
0
 /**
  * Run the following test case.
  *
  * <ol>
  *   <li>Run a multiple search query, with multiple requests, with *win* or *lin* as the
  *       parameter, searching for VMs
  *   <li>Return success, the success status is succeeded, with a failure in the result set
  *   <li>Check to make sure the appropriate query start and query complete events are fired
  * </ol>
  */
 @Test
 public void testRunMultipleQueries_multiple_success_and_failure() {
   // Don't immediately call process until both queries are in the queue.
   fakeScheduler.setThreshold(2);
   ArrayList<VdcQueryType> queryTypeList = new ArrayList<VdcQueryType>();
   queryTypeList.add(VdcQueryType.Search);
   queryTypeList.add(VdcQueryType.Search);
   ArrayList<VdcQueryParametersBase> queryParamsList = new ArrayList<VdcQueryParametersBase>();
   queryParamsList.add(new SearchParameters("*win*", SearchType.VM)); // $NON-NLS-1$
   queryParamsList.add(new SearchParameters("*lin*", SearchType.VM)); // $NON-NLS-1$
   frontend.runMultipleQueries(
       queryTypeList, queryParamsList, mockMultipleQueryCallback, "test"); // $NON-NLS-1$
   verify(mockService)
       .RunMultipleQueries(
           eq(queryTypeList), eq(queryParamsList), callbackMultipleQueries.capture());
   // Call the failure handler.
   List<VdcQueryReturnValue> result = new ArrayList<VdcQueryReturnValue>();
   result.add(new VdcQueryReturnValue());
   result.get(0).setSucceeded(false);
   result.add(new VdcQueryReturnValue());
   result.get(1).setSucceeded(true);
   ArgumentCaptor<FrontendMultipleQueryAsyncResult> multipleResultCaptor =
       ArgumentCaptor.forClass(FrontendMultipleQueryAsyncResult.class);
   callbackMultipleQueries.getValue().onSuccess((ArrayList<VdcQueryReturnValue>) result);
   verify(mockMultipleQueryCallback).executed(multipleResultCaptor.capture());
   assertEquals(
       "callback result much match",
       result, //$NON-NLS-1$
       multipleResultCaptor.getValue().getReturnValues());
 }
Ejemplo n.º 4
0
 /**
  * Run the following test case.
  *
  * <ol>
  *   <li>Run a multiple actions, with multiple actions
  *   <li>Have one of them fail. The rest is successful
  *   <li>Check to make sure the failure event is never fired
  * </ol>
  */
 @SuppressWarnings("unchecked")
 @Test
 public void testrunMultipleActionsMultipleSuccess_oneFailure() {
   // Don't immediately call process until both queries are in the queue.
   fakeScheduler.setThreshold(2);
   ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>();
   parameters.add(new VdcActionParametersBase());
   parameters.add(new VdcActionParametersBase());
   parameters.get(0).setCommandId(Guid.Empty);
   Object testState = new Object();
   frontend.runMultipleAction(
       VdcActionType.AddLocalStorageDomain,
       parameters,
       false,
       mockMultipleActionCallback,
       testState);
   verify(mockService)
       .runMultipleActions(
           eq(VdcActionType.AddLocalStorageDomain),
           eq(parameters),
           eq(false),
           eq(false),
           callbackMultipleActions.capture());
   ArrayList<VdcReturnValueBase> returnValues = new ArrayList<VdcReturnValueBase>();
   returnValues.add(new VdcReturnValueBase());
   returnValues.add(new VdcReturnValueBase());
   returnValues.get(0).setCanDoAction(true);
   returnValues.get(1).setCanDoAction(false);
   callbackMultipleActions.getValue().onSuccess(returnValues);
   verify(mockFrontendFailureEvent, never())
       .raise(eq(Frontend.class), (FrontendFailureEventArgs) any());
   @SuppressWarnings("rawtypes")
   ArgumentCaptor<ArrayList> failedCaptor = ArgumentCaptor.forClass(ArrayList.class);
   verify(mockEventsHandler)
       .runMultipleActionFailed(eq(VdcActionType.AddLocalStorageDomain), failedCaptor.capture());
   assertEquals("There is one failure", 1, failedCaptor.getValue().size()); // $NON-NLS-1$
   assertEquals(
       "Failures should match",
       returnValues.get(1),
       failedCaptor.getValue().get(0)); // $NON-NLS-1$
   verify(mockMultipleActionCallback).executed(callbackMultipleParam.capture());
   assertEquals(
       "Parameters should match",
       parameters, //$NON-NLS-1$
       callbackMultipleParam.getValue().getParameters());
   assertEquals(
       "Result should match",
       returnValues, //$NON-NLS-1$
       callbackMultipleParam.getValue().getReturnValue());
   assertEquals(
       "States should match",
       testState,
       callbackMultipleParam.getValue().getState()); // $NON-NLS-1$
 }