SimpleString address = RandomUtil.randomSimpleString();
SimpleString queue = RandomUtil.randomSimpleString();
int intValue = RandomUtil.randomInt();
session.createQueue(address, queue, null, false);
QueueControl queueControl = createManagementControl(address, queue);
ClientProducer producer = session.createProducer(address);
ClientMessage message = session.createMessage(false);
message.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay);
message.putIntProperty(new SimpleString("key"), intValue);
producer.send(message);
// unscheduled message
producer.send(session.createMessage(false));
String jsonString = queueControl.listScheduledMessagesAsJSON();
Assert.assertNotNull(jsonString);
JSONArray array = new JSONArray(jsonString);
Assert.assertEquals(1, array.length());
Assert.assertEquals(intValue, array.getJSONObject(0).get("key"));
Thread.sleep(delay + 500);
jsonString = queueControl.listScheduledMessagesAsJSON();
Assert.assertNotNull(jsonString);
array = new JSONArray(jsonString);
Assert.assertEquals(0, array.length());
ManagementTestBase.consumeMessages(2, session, queue);