public async Task VerifyRemoteGreetingAsync_not_matching_expected_NodeType()
        {
            var blockingQueue = new BlockingConcurrentQueue <MessageFrame>();
            var socket        = new InProcSocket(RedFoxEndpoint.Empty, blockingQueue, blockingQueue);

            var negotiator = new NodeGreetingMessageQueueSocketNegotiator(socket);
            var message    = new NodeGreetingMessage(NodeType.Responder);

            blockingQueue.Enqueue(new MessageFrame {
                RawMessage = message.Serialize()
            });

            try
            {
                await negotiator.VerifyRemoteGreetingAsync(new HashSet <NodeType> {
                    NodeType.Requester
                }, CancellationToken.None);

                Assert.Fail();
            }
            catch (RedFoxProtocolException)
            {
                Assert.Pass();
            }
        }
        public InProcSocketPair(InProcSocket clientSocket, InProcSocket serverSocket)
        {
            ClientSocket = clientSocket;
            ServerSocket = serverSocket;

            clientSocket.Disconnected += serverSocket.Disconnect;
            serverSocket.Disconnected += clientSocket.Disconnect;
        }
        public InProcSocketPair(InProcSocket clientSocket, InProcSocket serverSocket)
        {
            ClientSocket = clientSocket;
            ServerSocket = serverSocket;

            clientSocket.Disconnected += serverSocket.Disconnect;
            serverSocket.Disconnected += clientSocket.Disconnect;
        }
Exemple #4
0
        public void InProcSocket_maps_to_MessageFrameQueueWriter()
        {
            var socket = new InProcSocket();

            var factory    = new NodeGreetingMessageNegotiatorFactory();
            var negotiator = factory.CreateFromSocket(socket);

            Assert.IsInstanceOf <NodeGreetingMessageQueueSocketNegotiator>(negotiator);
        }
Exemple #5
0
        public void InProcSocket_maps_to_MessageFrameQueueWriter()
        {
            var socket = new InProcSocket();

            var factory = new MessageFrameWriterFactory();
            var writer  = factory.CreateWriterFromSocket(socket);

            Assert.IsInstanceOf <MessageFrameQueueWriter>(writer);
        }
        public void WriteGreetingAsync_writes_full_NodeGreetingMessage()
        {
            var blockingQueue = new BlockingConcurrentQueue <MessageFrame>();
            var socket        = new InProcSocket(RedFoxEndpoint.Empty, blockingQueue, blockingQueue);

            var negotiator = new NodeGreetingMessageQueueSocketNegotiator(socket);

            var message = new NodeGreetingMessage(NodeType.Responder);

            negotiator.WriteGreetingAsync(message, CancellationToken.None).Wait();

            Assert.AreEqual(message.Serialize(), blockingQueue.Dequeue(CancellationToken.None).RawMessage);
        }
        public void VerifyRemoteGreetingAsync_matching_expected_NodeType()
        {
            var blockingQueue = new BlockingConcurrentQueue <MessageFrame>();
            var socket        = new InProcSocket(RedFoxEndpoint.Empty, blockingQueue, blockingQueue);

            var negotiator = new NodeGreetingMessageQueueSocketNegotiator(socket);
            var message    = new NodeGreetingMessage(NodeType.Responder);

            blockingQueue.Enqueue(new MessageFrame {
                RawMessage = message.Serialize()
            });

            negotiator.VerifyRemoteGreetingAsync(new HashSet <NodeType> {
                NodeType.Responder
            }, CancellationToken.None).Wait();
        }
        public void VerifyRemoteGreeting_not_matching_expected_NodeType()
        {
            var blockingQueue = new BlockingConcurrentQueue <MessageFrame>();
            var socket        = new InProcSocket(RedFoxEndpoint.Empty, blockingQueue, blockingQueue);

            var negotiator = new NodeGreetingMessageQueueSocketNegotiator(socket);
            var message    = new NodeGreetingMessage(NodeType.Responder);

            blockingQueue.Enqueue(new MessageFrame {
                RawMessage = message.Serialize()
            });

            Assert.Throws <RedFoxProtocolException>(() => negotiator.VerifyRemoteGreeting(new HashSet <NodeType> {
                NodeType.Requester
            }));
        }