Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }