@Test public void dispatchNoMethodHooks() { int methodId = 3; Object object = mock(Object.class); Object[] parameters = new Object[0]; Object returnValue = mock(Object.class); RegisteredSensorConfig registeredSensorConfig = mock(RegisteredSensorConfig.class); when(registeredSensorConfig.getMethodSensors()).thenReturn(Collections.<IMethodSensor> emptyList()); when(registeredSensorConfig.getMethodSensorsReverse()).thenReturn(Collections.<IMethodSensor> emptyList()); hookDispatcher.addMapping(methodId, registeredSensorConfig); hookDispatcher.dispatchMethodBeforeBody(methodId, object, parameters); verify(registeredSensorConfig, times(1)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensorsReverse(); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); hookDispatcher.dispatchSecondMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(2)).isStartsInvocation(); verify(registeredSensorConfig, times(2)).getMethodSensors(); verifyZeroInteractions(object, coreService, returnValue); verifyNoMoreInteractions(registeredSensorConfig); }
verify(methodHook, times(1)).beforeBody(methodId, sensorTypeId, object, parameters, registeredSensorConfig); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, exception); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(methodHook, times(1)).firstAfterBody(methodId, sensorTypeId, object, parameters, returnValue, exception, registeredSensorConfig);
inOrder.verify(methodHookOne, times(1)).beforeBody(methodId, sensorTypeIdOne, object, parameters, registeredSensorConfig); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); inOrder = inOrder(methodHookOne, methodHookTwo, methodHookThree);
verify(exceptionHook, times(1)).dispatchOnThrowInBody(coreService, methodId, exceptionSensorTypeId, object, exceptionObject, parameters, registeredSensorConfig); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(methodHook, times(1)).firstAfterBody(methodId, sensorTypeId, object, parameters, returnValue, false, registeredSensorConfig);
hookDispatcher.dispatchFirstMethodAfterBody(methodIdTwo, object, parameters, returnValue, exception); verify(registeredSensorConfigTwo, times(1)).getMethodSensors(); verify(methodSensor, times(3)).getHook(); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(methodSensor, times(5)).getHook();
hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(invocHook, times(1)).firstAfterBody(methodId, invocSensorTypeId, object, parameters, returnValue, false, registeredSensorConfig);
verify(exceptionHook, times(1)).dispatchOnThrowInBody(coreService, methodId, exceptionSensorTypeId, object, exceptionObject, parameters, registeredSensorConfig); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); inOrder = inOrder(methodHookOne, methodHookTwo, methodHookThree);
hookDispatcher.dispatchFirstMethodAfterBody(methodIdTwo, object, parameters, returnValue, exception); verify(registeredSensorConfigTwo, times(1)).getMethodSensors(); verify(methodHook, times(1)).firstAfterBody(methodIdTwo, methodSensorTypeId, object, parameters, returnValue, exception, registeredSensorConfigTwo); hookDispatcher.dispatchFirstMethodAfterBody(methodId, object, parameters, returnValue, false); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(methodHook, times(1)).firstAfterBody(methodId, methodSensorTypeId, object, parameters, returnValue, false, registeredSensorConfig);