Search in sources :

Example 1 with TelegesisSleepyDeviceAnnounceEvent

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());
}
Also used : TelegesisEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisEvent) ArrayList(java.util.ArrayList) Method(java.lang.reflect.Method) InvocationTargetException(java.lang.reflect.InvocationTargetException) TelegesisNetworkLostEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLostEvent) TelegesisSleepyDeviceAnnounceEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisSleepyDeviceAnnounceEvent) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

TelegesisEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisEvent)1 TelegesisNetworkLostEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLostEvent)1 TelegesisSleepyDeviceAnnounceEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisSleepyDeviceAnnounceEvent)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 Method (java.lang.reflect.Method)1 ArrayList (java.util.ArrayList)1 Ignore (org.junit.Ignore)1 Test (org.junit.Test)1