@Test(timeout = 30000)
public void testParameterSettingUpdateAndDelete() throws IOException {
final MonitoringController controller = MonitoringController.createInstance(TCPControllerTest.configuration);
final String pattern = "void test.pattern()";
final String[] parameterNames = new String[] { "Pos1", "Pos2", "Pos3" };
final String[][] parameters = new String[][] { { "Pos1Parameter1", "Pos1Parameter2", "Pos1Parameter3", "Pos1Parameter4" },
{ "Pos2Parameter1", "Pos2Parameter2", "Pos2Parameter3", "Pos2Parameter4" }, { "Pos3Parameter1", "Pos3Parameter2", "Pos3Parameter3", "Pos3Parameter4" } };
this.tcpWriter = new SingleSocketTcpWriter(configuration);
this.tcpWriter.onStarting();
Assert.assertTrue(controller.activateProbe(pattern));
Assert.assertNull(controller.getParameters(pattern));
this.sendTCPEvent(new UpdateParameterEvent(pattern, parameterNames, parameters));
while ((controller.getParameters(pattern) == null)) {
Thread.yield();
}
Assert.assertTrue(controller.getParameters(pattern).size() == 3);
Assert.assertTrue(controller.getParameters(pattern).get(parameterNames[0]).get(1).equals(parameters[0][1]));
Assert.assertTrue(controller.getParameters(pattern).get(parameterNames[1]).get(2).equals(parameters[1][2]));
Assert.assertTrue(controller.getParameters(pattern).get(parameterNames[2]).get(0).equals(parameters[2][0]));
this.sendTCPEvent(new DeactivationEvent(pattern));
while (controller.getParameters(pattern) != null) {
Thread.yield();
}
Assert.assertNull(controller.getParameters(pattern));
}