Beispiel #1
0
        private IApiOperator CreateLocalOperator(
            Func <AddressFamily, SocketType, ProtocolType, ISocket> socketFactory,
            IRecorder recorder,
            IRemoteTraceMonitorСonsistent remoteTraceMonitor = default,
            string address = "111.111.111.111: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,
                _applicationRecorder);

            var apiOperatorFactory = new ApiOperatorFactory(monitoredRemoteOperatorFactory, traceableRemoteApiMapFactory, _applicationRecorder);

            return(apiOperatorFactory.Create(address));
        }
Beispiel #2
0
 public BaseMonitoredRemoteOperatorFactory(
     IInstructionSenderFactory instructionSenderFactory,
     IRemoteTraceMonitorСonsistent remoteTraceMonitor,
     IApplicationRecorder applicationRecorder,
     IRecorder recorder)
 {
     _instructionSenderFactory = instructionSenderFactory;
     _remoteTraceMonitor       = remoteTraceMonitor;
     _applicationRecorder      = applicationRecorder;
     _recorder = recorder;
 }
Beispiel #3
0
        public MonitoredRemoteOperator(
            IAutoLocalConnector autoLocalConnector,
            IRemoteTraceMonitorСonsistent remoteTraceMonitorСonsistent,
            IRecorder recorder)
        {
            _autoLocalConnector           = autoLocalConnector;
            _remoteTraceMonitorСonsistent = remoteTraceMonitorСonsistent;
            _recorder = recorder;

            _autoLocalConnector.TextReceived += TextReceivedHandler;
            _autoLocalConnector.Connected    += ConnectedHandler;
            _remoteTraceMonitorСonsistent.CommandReceived += TextEnteredHandler;
        }
Beispiel #4
0
        public void CommandReceived_WhenTextEnteredCalled_ShouldRaiseСonsistent()
        {
            dynamic resultCache              = new ExpandoObject();
            var     beforeTask               = new TaskCompletionSource <bool>();
            var     afterTask                = new TaskCompletionSource <bool>();
            var     commandReceivedTimes     = 0;
            var     lastCommandReceivedValue = string.Empty;

            async Task <bool> CommandReceivedHandler(string command)
            {
                beforeTask.SetResult(true);
                lastCommandReceivedValue = command;
                commandReceivedTimes++;
                await Task.Delay(300);

                afterTask.SetResult(true);

                return(true);
            }

            _sut = new RemoteTraceMonitorСonsistent(_remoteTraceMonitor);
            _sut.CommandReceived += CommandReceivedHandler;

            Mock.Raise(() => _remoteTraceMonitor.TextEntered += null, "capacity1");
            Mock.Raise(() => _remoteTraceMonitor.TextEntered += null, "capacity2");

            beforeTask.Task.Wait();
            resultCache.commandReceived1      = lastCommandReceivedValue;
            resultCache.commandReceivedTimes1 = commandReceivedTimes;
            afterTask.Task.Wait();

            beforeTask = new TaskCompletionSource <bool>();
            afterTask  = new TaskCompletionSource <bool>();

            beforeTask.Task.Wait();
            resultCache.commandReceived2      = lastCommandReceivedValue;
            resultCache.commandReceivedTimes2 = commandReceivedTimes;
            afterTask.Task.Wait();

            Assert.Equal(1, resultCache.commandReceivedTimes1);
            Assert.Equal("capacity1", resultCache.commandReceived1);
            Assert.Equal(2, resultCache.commandReceivedTimes2);
            Assert.Equal("capacity2", resultCache.commandReceived2);
        }
Beispiel #5
0
 public MonitoredRemoteOperatorTests()
 {
     _autoLocalConnector = Mock.Create <IAutoLocalConnector>();
     _remoteTraceMonitor = Mock.Create <IRemoteTraceMonitorСonsistent>();
     _recorder           = Mock.Create <IRecorder>();
 }