use of com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisSleepyDeviceAnnounceEvent in project com.zsmartsystems.zigbee by zsmartsystems.
the class TelegesisFrameHandlerTest method testEventWait.
@Ignore
@Test
public void testEventWait() {
final TelegesisFrameHandler frameHandler = new TelegesisFrameHandler();
final List<TelegesisEvent> eventCapture = new ArrayList<TelegesisEvent>();
Thread waitThread = new Thread() {
@Override
public void run() {
// Send the transaction and wait for the response
eventCapture.add(frameHandler.eventWait(TelegesisSleepyDeviceAnnounceEvent.class));
synchronized (eventCapture) {
eventCapture.notify();
}
}
};
waitThread.start();
TelegesisEvent eventOk = new TelegesisSleepyDeviceAnnounceEvent();
TelegesisEvent eventNOk = new TelegesisNetworkLostEvent();
try {
Method privateMethod;
try {
privateMethod = TelegesisFrameHandler.class.getDeclaredMethod("notifyEventReceived", new Class[] { TelegesisEvent.class });
privateMethod.setAccessible(true);
privateMethod.invoke(frameHandler, eventNOk);
privateMethod.invoke(frameHandler, eventOk);
} catch (NoSuchMethodException | SecurityException | IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
synchronized (eventCapture) {
eventCapture.wait(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
assertEquals(1, eventCapture.size());
}
Aggregations