@SuppressWarnings("unchecked")
@Test
public void configureJmxSensor() throws Exception {
long agentId = 13L;
long sensorId = 17L;
String className = "className";
Map<String, Object> parameters = Collections.<String, Object> singletonMap("key", "value");
JmxSensorConfig jmxSensorConfig = mock(JmxSensorConfig.class);
when(jmxSensorConfig.getClassName()).thenReturn(className);
when(jmxSensorConfig.getParameters()).thenReturn(parameters);
when(jmxSensorConfig.isActive()).thenReturn(true);
when(environment.getJmxSensorConfig()).thenReturn(jmxSensorConfig);
when(registrationService.registerJmxSensorTypeIdent(agentId, className)).thenReturn(sensorId);
AgentConfig agentConfiguration = creator.environmentToConfiguration(environment, agentId);
JmxSensorTypeConfig sensorTypeConfig = agentConfiguration.getJmxSensorTypeConfig();
assertThat(sensorTypeConfig.getId(), is(sensorId));
assertThat(sensorTypeConfig.getClassName(), is(className));
assertThat(sensorTypeConfig.getParameters(), is(parameters));
verify(registrationService).registerJmxSensorTypeIdent(agentId, className);
verify(registrationService, times(3)).registerMethodSensorTypeIdent(anyLong(), anyString(), anyMap());
verifyNoMoreInteractions(registrationService);
}