/*
* Copyright (C) 2012 - present by Yann Le Tallec.
* Please see distribution for license.
*/
package com.assylias.jbloomberg;
import com.bloomberglp.blpapi.Event;
import com.bloomberglp.blpapi.EventHandler;
import com.bloomberglp.blpapi.Message;
import com.bloomberglp.blpapi.Session;
import com.bloomberglp.blpapi.SessionOptions;
import java.io.IOException;
import java.util.List;
import mockit.Mock;
import mockit.MockUp;
public class MockSession extends MockUp<Session> {
private EventHandler handler;
private Event startAsyncEvent;
private boolean openServiceOk;
public MockSession simulateStartAsyncOk() {
List<Message> messages = new MockMessageList("SessionStarted").getList();
this.startAsyncEvent = new MockEvent(Event.EventType.SESSION_STATUS, messages);
return this;
}
public MockSession simulateSessionStartupFailure() {
List<Message> messages = new MockMessageList("SessionStartupFailure").getList();
this.startAsyncEvent = new MockEvent(Event.EventType.SESSION_STATUS, messages);
return this;
}
public MockSession setOpenServiceOk() {
openServiceOk = true;
return this;
}
@Mock
public void $init(SessionOptions ignore, EventHandler handler) {
this.handler = handler;
}
@Mock
public void startAsync() throws IOException {
if (startAsyncEvent == null) {
throw new IOException();
}
handler.processEvent(startAsyncEvent, this.getMockInstance());
}
@Mock
public boolean openService(String serviceUri) throws IOException {
if (!openServiceOk) {
throw new IOException();
}
return true;
}
}