private static EventSyncResponse convert(EventServerSync source) { if (source == null) { return null; } EventSyncResponse sync = new EventSyncResponse(); if (source.getEventSequenceNumberResponse() != null) { sync.setEventSequenceNumberResponse(new EventSequenceNumberResponse( source.getEventSequenceNumberResponse().getSeqNum())); } if (source.getEvents() != null) { List<org.kaaproject.kaa.common.endpoint.gen.Event> events = new ArrayList<>( source.getEvents().size()); for (Event event : source.getEvents()) { events.add(convert(event)); } sync.setEvents(events); } if (source.getEventListenersResponses() != null) { List<EventListenersResponse> responses = new ArrayList<>( source.getEventListenersResponses().size()); for (org.kaaproject.kaa.server.sync.EventListenersResponse response : source.getEventListenersResponses()) { responses.add(new EventListenersResponse( response.getRequestId(), response.getListeners(), convert(response.getResult()))); } sync.setEventListenersResponses(responses); } return sync; }
@Test public void onEventResponse() throws Exception { KaaClientState clientState = Mockito.mock(KaaClientState.class); EventManager manager = Mockito.mock(EventManager.class); EventTransport transport = new DefaultEventTransport(clientState); EventSyncResponse response = new EventSyncResponse(); transport.onEventResponse(response); transport.setEventManager(manager); transport.onEventResponse(response); List<Event> events = new ArrayList<>(1); response.setEvents(events); transport.onEventResponse(response); events.add(new Event(5, "eventClassFQN", ByteBuffer.wrap(new byte[]{1, 2, 3}), "source", "target")); transport.onEventResponse(response); List<EventListenersResponse> listeners = new ArrayList<>(1); response.setEventListenersResponses(listeners); transport.onEventResponse(response); listeners.add(new EventListenersResponse()); transport.onEventResponse(response); Mockito.verify(manager, Mockito.times(3)).onGenericEvent(Mockito.eq("eventClassFQN"), Mockito.eq(new byte[]{1, 2, 3}), Mockito.eq("source")); Mockito.verify(manager, Mockito.times(1)).eventListenersResponseReceived(listeners); }