internal static IApiOperator CreateLocalOperator( Func <AddressFamily, SocketType, ProtocolType, ISocket> socketFactory, ApplicationCacheRecorder recorder, IRemoteTraceMonitorСonsistent remoteTraceMonitor = default, string address = "127.0.0.0:11111") { if (remoteTraceMonitor == default) { remoteTraceMonitor = Mock.Create <IRemoteTraceMonitorСonsistent>(); } // MonitoredRemoteOperator var instructionSenderFactory = new TestInstructionSenderFactory(socketFactory, recorder); var monitoredRemoteOperatorFactory = new BaseMonitoredRemoteOperatorFactory( instructionSenderFactory, remoteTraceMonitor, recorder); // RemoteApiMap var instructionReceiverFactory = new TestInstructionReceiverFactory(socketFactory, recorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory( instructionReceiverFactory, recorder); var apiOperatorFactory = new ApiOperatorFactory(monitoredRemoteOperatorFactory, traceableRemoteApiMapFactory, recorder); return(apiOperatorFactory.Create(address)); }
internal static TraceableRemoteApiMapWrapperRealSockets ArrangeRemoteApiMapTestWrapperWithRealSockets( string address) { var recorder = new ApplicationCacheRecorder(); var sockets = new List <SocketTesterWrapper>(); var socketFactoryCounter = 0; var apiMapWrapper = default(TraceableRemoteApiMapWrapperRealSockets); void OnAccepted(SocketTesterWrapper wrapper) { sockets.Add(wrapper); apiMapWrapper.SocketAcceptedHandler?.Invoke(wrapper); } Func <AddressFamily, SocketType, ProtocolType, ISocket> socketFactory = (family, type, arg3) => { socketFactoryCounter++; var socket = new SocketTesterWrapper(family, type, arg3, $"{socketFactoryCounter}"); socket.Accepted += OnAccepted; sockets.Add(socket); return(socket); }; // RemoteApiMap var instructionReceiverFactory = new TestInstructionReceiverFactory(socketFactory, recorder); var traceableRemoteApiMapFactory = new BaseTraceableRemoteApiMapFactory( instructionReceiverFactory, recorder); var apiMap = traceableRemoteApiMapFactory.Create(address); apiMapWrapper = new TraceableRemoteApiMapWrapperRealSockets(sockets, apiMap, recorder); return(apiMapWrapper); }