void assertHasAdcEvent() { EventType *adcEventType = AdcEventType_get(); Event *event = EventSource_poll(_eventSource); CHECK( event != NULL); POINTERS_EQUAL(adcEventType, Event_getEventType(event)); }
void assertHasAdcEventWithSample(int channelId, uint16_t value) { EventType *adcEventType = AdcEventType_get(); Event *event = EventSource_poll(_eventSource); CHECK( event != NULL); POINTERS_EQUAL(adcEventType, Event_getEventType(event)); AdcEvent *adcEvent = AdcEvent_fromEvent(event); AdcSample *sample = AdcEvent_getSample(adcEvent); CHECK_EQUAL(channelId, AdcSample_getChannelId(sample)); CHECK_EQUAL(value, AdcSample_getValue(sample)) }
static void EventManager_fireEvent(EventManager *self, Event *event) { EventType *eventType = Event_getEventType(event); for ( EventListener *listener = self->eventListenerListHead; listener != NULL; listener = listener->next ) { EventType *listenerType = listener->eventType; bool isInterested = (eventType==listenerType); if ( isInterested ) { EventListener_notify(listener, event); } } }
static void TestEventListener_notify(EventListener *baseSelf, Event *event) { TestEventListener *self = (TestEventListener *)baseSelf; EventType *expectedEventType = self->eventType; if ( NULL != expectedEventType ) { assert( expectedEventType == Event_getEventType(event) ); } if ( self->eventCount < self->maxEventCount ) { ++(self->eventCount); if ( self->eventCount == self->maxEventCount ) { EventManager_stop(self->eventManager); } } }