- @Test
- public void testStartPreprocessorAsync() throws Exception {
- // insert CQ data so it's there for the check
- context.setProperty(AaiCqResponse.CONTEXT_KEY, makeCqResponse());
-
- AtomicBoolean guardStarted = new AtomicBoolean();
-
- oper = new MyOperation(params, config) {
- @Override
- protected CompletableFuture<OperationOutcome> startGuardAsync() {
- guardStarted.set(true);
- return super.startGuardAsync();
- }
- };
-
- CompletableFuture<OperationOutcome> future3 = oper.startPreprocessorAsync();
- assertNotNull(future3);
- assertTrue(guardStarted.get());
- }
-
- /**
- * Tests startPreprocessorAsync(), when preprocessing is disabled.
- */
- @Test
- public void testStartPreprocessorAsyncDisabled() {
- params = params.toBuilder().preprocessed(true).build();
- assertNull(new MyOperation(params, config).startPreprocessorAsync());
- }
-
- @Test
- public void testStartGuardAsync() throws Exception {
- // remove CQ data so it's forced to query
- context.removeProperty(AaiCqResponse.CONTEXT_KEY);
-
- CompletableFuture<OperationOutcome> future2 = oper.startPreprocessorAsync();
- assertTrue(executor.runAll(100));
- assertFalse(future2.isDone());
-
- provideCqResponse(makeCqResponse());
- assertTrue(executor.runAll(100));
- assertTrue(future2.isDone());
- assertEquals(OperationResult.SUCCESS, future2.get().getResult());
- }
-
- @Test
- public void testMakeGuardPayload() {
- final int origCount = 30;
- oper.setVfCount(origCount);
-
- CompletableFuture<OperationOutcome> future2 = oper.startPreprocessorAsync();
- assertTrue(executor.runAll(100));
- assertTrue(future2.isDone());
-
- // get the payload from the request
- ArgumentCaptor<ControlLoopOperationParams> captor = ArgumentCaptor.forClass(ControlLoopOperationParams.class);
- verify(guardOperator).buildOperation(captor.capture());
-
- Map<String, Object> payload = captor.getValue().getPayload();
- assertNotNull(payload);
-
- Integer newCount = (Integer) payload.get(VfModuleDelete.PAYLOAD_KEY_VF_COUNT);
- assertNotNull(newCount);
- assertEquals(origCount - 1, newCount.intValue());
- }
-