@Test public void dispatchNoConstructorHooks() { int methodId = 3; Object object = mock(Object.class); Object[] parameters = new Object[0]; RegisteredSensorConfig registeredSensorConfig = mock(RegisteredSensorConfig.class); when(registeredSensorConfig.getMethodSensors()).thenReturn(Collections.<IMethodSensor> emptyList()); when(registeredSensorConfig.getMethodSensorsReverse()).thenReturn(Collections.<IMethodSensor> emptyList()); hookDispatcher.addMapping(methodId, registeredSensorConfig); hookDispatcher.dispatchConstructorBeforeBody(methodId, parameters); verify(registeredSensorConfig, times(1)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensorsReverse(); hookDispatcher.dispatchConstructorAfterBody(methodId, object, parameters); verify(registeredSensorConfig, times(2)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensors(); verifyZeroInteractions(object, coreService); verifyNoMoreInteractions(registeredSensorConfig); }
@Test public void dispatchOneConstructorHookWithoutInvocationTrace() { long sensorTypeId = 7L; IConstructorHook constructorHook = mock(IConstructorHook.class); IMethodSensor methodSensor = mock(IMethodSensor.class); MethodSensorTypeConfig methodSensorConfig = mock(MethodSensorTypeConfig.class); when(methodSensor.getHook()).thenReturn(constructorHook); when(methodSensor.getSensorTypeConfig()).thenReturn(methodSensorConfig); when(methodSensorConfig.getId()).thenReturn(sensorTypeId); RegisteredSensorConfig registeredSensorConfig = mock(RegisteredSensorConfig.class); when(registeredSensorConfig.getMethodSensors()).thenReturn(Collections.singletonList(methodSensor)); when(registeredSensorConfig.getMethodSensorsReverse()).thenReturn(Collections.singletonList(methodSensor)); int methodId = 3; Object object = mock(Object.class); Object[] parameters = new Object[0]; hookDispatcher.addMapping(methodId, registeredSensorConfig); hookDispatcher.dispatchConstructorBeforeBody(methodId, parameters); verify(registeredSensorConfig, times(1)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensorsReverse(); verify(constructorHook, times(1)).beforeConstructor(methodId, sensorTypeId, parameters, registeredSensorConfig); hookDispatcher.dispatchConstructorAfterBody(methodId, object, parameters); verify(registeredSensorConfig, times(2)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensors(); verify(constructorHook, times(1)).afterConstructor(coreService, methodId, sensorTypeId, object, parameters, registeredSensorConfig); verifyZeroInteractions(object, coreService); verifyNoMoreInteractions(registeredSensorConfig, constructorHook); }
inOrder.verify(constructorHookOne, times(1)).beforeConstructor(methodId, sensorTypeIdOne, parameters, registeredSensorConfig); hookDispatcher.dispatchConstructorAfterBody(methodId, object, parameters); verify(registeredSensorConfig, times(2)).isStartsInvocation(); verify(registeredSensorConfig, times(1)).getMethodSensors();
hookDispatcher.dispatchConstructorAfterBody(constructorId, exceptionObject, parameters); verify(registeredConstructorSensorConfig, times(2)).isStartsInvocation(); verify(registeredConstructorSensorConfig, times(1)).getMethodSensors();
hookDispatcher.dispatchConstructorAfterBody(methodIdTwo, object, parameters); verify(registeredSensorConfigTwo, times(2)).isStartsInvocation(); verify(registeredSensorConfigTwo, times(1)).getMethodSensors();
hookDispatcher.dispatchConstructorAfterBody(constructorId, exceptionObject, parameters); verify(registeredConstructorSensorConfig, times(2)).isStartsInvocation(); verify(registeredConstructorSensorConfig, times(1)).getMethodSensors();
hookDispatcher.dispatchConstructorAfterBody(constructorId, exceptionObject, parameters); verify(registeredConstructorSensorConfig, times(2)).isStartsInvocation(); verify(registeredConstructorSensorConfig, times(1)).getMethodSensors();