private void TestHelper(IObjectFactory factory, SessionHandler handler) { MockRepository mocks = new MockRepository(); ISession session = mocks.StrictMock<ISession>(); JsBridge bridge = new JsBridge(session, factory); HostedMode.Host = bridge; SessionHelper helper = new SessionHelper(bridge, session); using (mocks.Ordered()) { handler(helper); } mocks.ReplayAll(); bridge.DispatchForever(); mocks.VerifyAll(); }
private void SimulateAction(SessionHelper session, Type nativeType, string name, JsValueType retType, ref int remoteId, params int[] args) { var action = session.DefineFunctionMessage(nativeType.GetMethod(name)); session.InvokeFunctionMessage(action.Name, 0); var id = ++remoteId; session.OnReturnMessage(false, JsValueType.JsObject, id); JsValue[] wrapped = args.Select(x => new JsValue(x)).ToArray(); session.InvokeDelegateMessage(id, wrapped); session.OnReturnMessage(false, retType, null); }