public void Respond(IMessagesSender sender, IMessage response)
 {
     using (Client)
     {
         sender.Send(response, Client.GetStream());
     }
 }
        public ServerClientTests()
        {
            tcpClient = A.Fake <ITcpClient>();
            stream    = A.Fake <INetworkStream>();
            reader    = A.Fake <IMessageStreamReader>();
            sender    = A.Fake <IMessagesSender>();
            config    = A.Fake <ICsConfiguration>();
            mediator  = A.Fake <IMediator>();

            A.CallTo(() => config.Address).Returns(IPAddress.Loopback);
            A.CallTo(() => config.Port).Returns(1234);
            A.CallTo(() => tcpClient.GetStream()).Returns(stream);
            A.CallTo(() => reader.MayHaveMessages).ReturnsLazily(() => messagesRead = !messagesRead);
            A.CallTo(() => reader.ReadAvailable()).ReturnsLazily(() => A.CollectionOfFake <IMessage>(1).ToArray());

            Func <ITcpClient> clientFactory = () =>
            {
                tcpClientCreated = true;
                return(tcpClient);
            };
            Func <INetworkStream, IMessageStreamReader> readerFactory = s =>
            {
                if (s == stream)
                {
                    readerCreated = true;
                    return(reader);
                }
                throw new InvalidOperationException();
            };

            serverClient = new ServerClient(config, sender, mediator, clientFactory, readerFactory);
        }
 public SolutionsMessageHandler(IProblemManager manager, IMessagesSender sender, IBackupServerManager backups,
                                IBackupSender backupSender, ICsDataStore nodeStore)
     : base(manager, sender, backupSender)
 {
     this.backups   = backups;
     this.nodeStore = nodeStore;
 }
 public GateKeeperReadyProcessor(IDataStorage <GateKeeperBot> dataStorage, AsyncTaskExecutor asyncTaskExecutor, IUserChecker userChecker, IMessagesSender messagesSender)
 {
     this.dataStorage       = dataStorage;
     this.asyncTaskExecutor = asyncTaskExecutor;
     this.userChecker       = userChecker;
     this.messagesSender    = messagesSender;
 }
 public BackupSender(IMessagesSender sender, IBackupServerManager backupServers, Func <ITcpClient> clientFactory,
                     IMediator mediator)
 {
     this.sender        = sender;
     this.backupServers = backupServers;
     this.clientFactory = clientFactory;
     this.mediator      = mediator;
 }
        public MessageSenderTests()
        {
            stream     = new NetworkMemoryStream();
            serializer = A.Fake <IMessageSerializer>();
            A.CallTo(() => serializer.Serialize(null)).WithAnyArguments().Returns(new byte[0]);

            sender = new MessagesSender(serializer);
        }
示例#7
0
 public StatusMessageHandler(IMessagesSender messagesSender, IMediator mediator,
                             IBackupServerManager backupServers, IProblemDispatcher problemDispatcher, IBackupSender backupSender)
 {
     this.messagesSender    = messagesSender;
     this.mediator          = mediator;
     this.backupServers     = backupServers;
     this.problemDispatcher = problemDispatcher;
     this.backupSender      = backupSender;
 }
示例#8
0
 public RegisterMessageHandler(IMessagesSender messagesSender, CommunicationsServerConfiguration config,
                               IClientIdGenerator generator, IMediator mediator, IBackupSender sender)
 {
     this.messagesSender = messagesSender;
     this.config         = config;
     this.generator      = generator;
     this.mediator       = mediator;
     this.sender         = sender;
 }
 public ServerClient(ICsConfiguration config, IMessagesSender sender, IMediator mediator,
                     Func <ITcpClient> tcpClientFactory, Func <INetworkStream, IMessageStreamReader> readerFactory)
 {
     this.config           = config;
     this.sender           = sender;
     this.mediator         = mediator;
     this.tcpClientFactory = _ => tcpClientFactory();
     this.readerFactory    = readerFactory;
 }
示例#10
0
 public SendServerStateToBackup(IMessagesSender sender, Func <ITcpClient> clientFactory, ICsDataStore dataStore,
                                IMediator mediator, IProblemManager problemManager, CommunicationServerStorage communicationServerStorage)
 {
     this.sender                     = sender;
     this.clientFactory              = clientFactory;
     this.dataStore                  = dataStore;
     this.mediator                   = mediator;
     this.problemManager             = problemManager;
     this.communicationServerStorage = communicationServerStorage;
 }
 public ServerClient(ICsConfiguration config, IMessagesSender sender, IMediator mediator,
                     Func <IPEndPoint, ITcpClient> tcpClientFactory, Func <INetworkStream, IMessageStreamReader> readerFactory,
                     IPEndPoint endPoint)
 {
     this.config           = config;
     this.sender           = sender;
     this.mediator         = mediator;
     this.tcpClientFactory = tcpClientFactory;
     this.readerFactory    = readerFactory;
     this.endPoint         = endPoint;
 }
示例#12
0
        public BackupSenderTests()
        {
            messagesSender = A.Fake <IMessagesSender>();
            backupServers  = A.Fake <IBackupServerManager>();
            client         = A.Fake <ITcpClient>();
            mediator       = A.Fake <IMediator>();
            message        = A.Fake <IMessage>();

            A.CallTo(() => backupServers.GetFollowingNodes()).Returns(BackupNodes);
            A.CallTo(() => client.GetStream()).Returns(A.Fake <INetworkStream>());

            sender = new BackupSender(messagesSender, backupServers, () => client, mediator);
        }
示例#13
0
        public SendServerStateToBackupTests()
        {
            sender                     = A.Fake <IMessagesSender>();
            dataStore                  = A.Fake <ICsDataStore>();
            tcpClient                  = A.Fake <ITcpClient>();
            mediator                   = A.Fake <IMediator>();
            problemManager             = A.Fake <IProblemManager>();
            communicationServerStorage = A.Fake <CommunicationServerStorage>();


            A.CallTo(() => dataStore.ConnectedNodes).Returns(new[] { new NodeInfo(123, "test", new string[0]) });

            handler = new SendServerStateToBackup(sender, () => tcpClient, dataStore, mediator, problemManager, communicationServerStorage);
        }
        public StatusMessageHandlerTests()
        {
            mediator      = A.Fake <IMediator>();
            sender        = A.Fake <IMessagesSender>();
            backupServers = A.Fake <IBackupServerManager>();
            client        = A.Fake <ITcpClient>();
            dispatcher    = A.Fake <IProblemDispatcher>();
            backupSender  = A.Fake <IBackupSender>();

            A.CallTo(() => client.GetStream()).Returns(A.Fake <INetworkStream>());
            A.CallTo(() => backupServers.BackupServers).Returns(SampleServers);
            A.CallTo(() => dispatcher.GetWorkForNode(0)).WithAnyArguments().Returns(null);

            handler = new StatusMessageHandler(sender, mediator, backupServers, dispatcher, backupSender);
        }
示例#15
0
        public RegisterMessageHandlerTests()
        {
            sender = A.Fake <IMessagesSender>();
            config = new CommunicationsServerConfiguration {
                CommunicationsTimeout = Timeout
            };
            idGenerator   = A.Fake <IClientIdGenerator>();
            backupManager = A.Fake <IBackupServerManager>();
            mediator      = A.Fake <IMediator>();
            client        = A.Fake <ITcpClient>();
            backupSender  = A.Fake <IBackupSender>();
            A.CallTo(() => backupManager.BackupServers).Returns(A.CollectionOfFake <BackupNodeInfo>(0).ToArray());
            A.CallTo(() => client.GetStream()).Returns(A.Fake <INetworkStream>());
            A.CallTo(() => client.RemoteEndpoint).Returns(Endpoint);

            message = new RegisterMessage {
                Type = Constants.NodeTypes.ComputationalNode
            };

            A.CallTo(() => idGenerator.Next()).Returns(NodeId);

            handler = new RegisterMessageHandler(sender, config, idGenerator, mediator, backupSender);
        }
示例#16
0
 public SubFSMFactory(IMessagesSender messagesSender, IDataStorage <SearchBot> dataStorage)
 {
     this.dataStorage    = dataStorage;
     this.messagesSender = messagesSender;
 }
示例#17
0
 public GKRightChecker(IBotSettings botSettings, IMessagesSender messagesSender)
 {
     this.botSettings    = botSettings;
     this.messagesSender = messagesSender;
 }
 public BaseProblemHandler(IProblemManager manager, IMessagesSender sender, IBackupSender backupSender)
 {
     this.manager      = manager;
     this.sender       = sender;
     this.backupSender = backupSender;
 }
 public SolveRequestHandler(IProblemManager manager, IMessagesSender sender, IBackupSender backupSender)
     : base(manager, sender, backupSender)
 {
 }
 public SolutionRequestHandler(IProblemManager manager, IMessagesSender sender)
 {
     this.manager = manager;
     this.sender  = sender;
 }
示例#21
0
 public BusyProcessor(IMessagesSender messagesSender)
 {
     this.messagesSender = messagesSender;
 }
示例#22
0
 public SearchReciever(SearchClient searchClient, SearchState <TBot> searchState, IMessagesSender messagesSender)
 {
     this.searchClient   = searchClient;
     this.searchState    = searchState;
     this.messagesSender = messagesSender;
 }
 public ObserverReadyProcessor(IMessagesSender messagesSender)
 {
     this.messagesSender = messagesSender;
 }
示例#24
0
 public SearchState(IMessagesSender messagesSender, IDataStorage <TBot> dBWorker)
 {
     this.messagesSender = messagesSender;
     this.dBWorker       = dBWorker;
 }
示例#25
0
 public Notifire(IMessagesSender messagesSender, IRabbitMQSettings rabbitMQSettings, ConnectionFactory connectionFactory, IBotSettings botSettings) :
     base(rabbitMQSettings, connectionFactory, TrimToken(botSettings.Token))
 {
     this.messagesSender = messagesSender;
 }
示例#26
0
 public SearchReadyProcessor(IServiceProvider serviceProvider, IMessagesSender messagesSender, AsyncTaskExecutor asyncTaskExecutor)
 {
     this.messagesSender    = messagesSender;
     this.serviceProvider   = serviceProvider;
     this.asyncTaskExecutor = asyncTaskExecutor;
 }
示例#27
0
 public ConfigProcessor(IMessagesSender messagesSender, IDataStorage <SearchBot> dataStorage)
 {
     this.messagesSender = messagesSender;
     this.dataStorage    = dataStorage;
 }