public void PipeCommunicator_ServerSendMessageTest()
        {
            this.serverMessenger.Send("TestMessage");

            WaitHelpers.WaitUntil(() => this.clientReceivedMessages.Count == 1);
            Assert.AreEqual("TestMessage", this.clientReceivedMessages[0]);
        }
        public void PipeCommunicator_ClientSendTwoMessagesTest()
        {
            this.clientMessenger.Send("TestMessage1");
            this.clientMessenger.Send("TestMessage2");

            WaitHelpers.WaitUntil(() => this.serverReceivedMessages.Count == 2);
            Assert.AreEqual("TestMessage1", this.serverReceivedMessages[0]);
            Assert.AreEqual("TestMessage2", this.serverReceivedMessages[1]);
        }
Beispiel #3
0
        private Message ExecuteRequest(Message request)
        {
            Message response = null;

            this.remoteService.Request(request, r => response = r, null);

            WaitHelpers.WaitUntil(() => response != null);
            return(response);
        }
Beispiel #4
0
        public void Messaging_NotificationTest()
        {
            this.router.AddRoute("notification", this.testService);
            Message notification = null;

            this.remoteService.Subscribe("notification", n => notification = n);
            WaitHelpers.WaitUntil(() => this.testService.Subscription != null);

            this.testService.Notify("notification");
            WaitHelpers.WaitUntil(() => notification != null);
        }
        public void TestInitialize()
        {
            string pipeName = "2EB256B1-F04F-49FB-97F6-099358AC3195";

            this.server = new PipeCommunicatorServer(pipeName);

            this.server.PipeConnected += (sender, @event) =>
            {
                this.serverMessenger = @event.Messenger;
                this.serverMessenger.MessageReceived += (o, e) => this.serverReceivedMessages.Add(e.Message);
            };

            this.server.Start();
            this.clientMessenger = PipeCommunicatorClient.Connect(pipeName);
            this.clientMessenger.MessageReceived += (sender, @event) => this.clientReceivedMessages.Add(@event.Message);
            WaitHelpers.WaitUntil(() => this.serverMessenger != null);
        }
        public void HostRouter_MessengerDisposedTest()
        {
            HostRouter        hostRouter      = new HostRouter();
            Mock <IMessenger> messenger       = new Mock <IMessenger>();
            string            responseMessage = null;

            hostRouter.MessageReceived += (sender, @event) => responseMessage = @event.Message;
            messenger.Setup(m => m.Send(It.IsAny <string>())).Callback(() => { throw new ObjectDisposedException(string.Empty); });
            hostRouter.AddConnection("host1", () => messenger.Object);

            var    message     = Message.CreateRequest("someRequest");
            string jsonMessage = Envelope.Pack(message, "host1");

            hostRouter.Send(jsonMessage);

            WaitHelpers.WaitUntil(() => responseMessage != null);
        }
        public void PipeCommunicator_AcceptanceTest()
        {
            this.clientMessenger.Send("ClientMessage1");
            this.serverMessenger.Send("ServerMessage1");
            this.clientMessenger.Send("ClientMessage2");
            this.clientMessenger.Send("ClientMessage3");
            this.serverMessenger.Send("ServerMessage3");
            this.clientMessenger.Send("ClientMessage4");
            this.serverMessenger.Send("ServerMessage2");
            this.serverMessenger.Send("ServerMessage4");
            this.serverMessenger.Send("ServerMessage5");
            this.clientMessenger.Send("ClientMessage5");

            WaitHelpers.WaitUntil(() => this.serverReceivedMessages.Count == 5);
            WaitHelpers.WaitUntil(() => this.clientReceivedMessages.Count == 5);

            Assert.IsTrue(this.serverReceivedMessages.Contains("ClientMessage1"));
            Assert.IsTrue(this.serverReceivedMessages.Contains("ClientMessage5"));
            Assert.IsTrue(this.clientReceivedMessages.Contains("ServerMessage1"));
            Assert.IsTrue(this.clientReceivedMessages.Contains("ServerMessage5"));
        }
Beispiel #8
0
        public void Messaging_NotificationAfterMessengerClosedTest()
        {
            bool disconnected = false;

            this.communicatorServer.PipeDisconnected += (s, e) => disconnected = true;

            this.router.AddRoute("notification", this.testService);
            Message notification = null;

            this.remoteService.Subscribe("notification", n => notification = n);
            WaitHelpers.WaitUntil(() => this.testService.Subscription != null);

            // close the messenger
            this.pipeChannelFactory.Dispose();
            WaitHelpers.WaitUntil(() => disconnected);

            this.testService.Notify("notification");

            // notification could not be send, an automatic unsubscription was performed
            WaitHelpers.WaitUntil(() => this.testService.Subscription == null);
        }
Beispiel #9
0
        public void PipeAuthorization_CheckSignatureTest()
        {
            this.communicatorServer = new PipeCommunicatorServer("CA25C0E2-72DE-46DC-845B-01A92E633D2B");
            this.communicatorServer.Start();
            PipeAuthorizationChecker checker = new PipeAuthorizationChecker();

            this.communicatorServer.AuthorizationChecker = checker;
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PipeConnectorTest.exe");

            var statrupInfo = new ProcessStartInfo
            {
                FileName        = path,
                Arguments       = "CA25C0E2-72DE-46DC-845B-01A92E633D2B",
                CreateNoWindow  = true,
                UseShellExecute = false,
            };

            using (var process = Process.Start(statrupInfo))
            {
                WaitHelpers.WaitUntil(() => process.HasExited);
                Assert.AreEqual(0, process.ExitCode);
            }
        }