package com.mopub.common.event;
import android.os.HandlerThread;
import android.os.Message;
import com.mopub.common.test.support.SdkTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.ArrayList;
import java.util.List;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@RunWith(SdkTestRunner.class)
public class EventDispatcherTest {
private EventDispatcher subject;
private EventRecorder testRecorder;
private HandlerThread testHandlerThread;
@Before
public void setup() {
// Set up test event recorders and test handler thread.
List<EventRecorder> recorders = new ArrayList<EventRecorder>();
testRecorder = mock(EventRecorder.class);
recorders.add(testRecorder);
testHandlerThread = new HandlerThread("mopub-test-events");
subject = new EventDispatcher(recorders, testHandlerThread);
// The test runner uses a mock dispatcher that does nothing.
MoPubEvents.setEventDispatcher(subject);
}
@Test
public void createEvent_testCallbackCallsHandler() throws Exception {
Message message = new Message();
message.obj = new Event.Builder("","").build();
subject.mHandlerCallback.handleMessage(message);
verify(testRecorder).record(eq((Event) message.obj));
}
}