Exemple #1
0
        public void TestSubscribingToHybridConnection()
        {
            string connectionName  = "TestSubscribingToHybridConnection";
            string responseMessage = "Well hello to you!!";

            CreateHybridConnection(connectionName);
            HybridConnectionListener listener = null;

            try
            {
                //listener = CreateHybridListener(connectionName, responseMessage);
                IOperator localOP = new Telegraphy.Azure.Relay.Hybrid.HybridConnectionSubscriptionOperator <string>(Connections.HybridRelayConnectionString, connectionName);

                bool recieved = false;
                Telegraph.Instance.Register <string>(localOP, (msgString) =>
                {
                    recieved = true;
                    Console.WriteLine(msgString);
                    Assert.IsTrue(responseMessage.Equals(responseMessage));
                });
                Telegraph.Instance.Register(typeof(Exception), FailOnException);

                var client = new Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <string, string>(Connections.HybridRelayConnectionString, connectionName);
                (client as IActor).OnMessageRecieved(responseMessage.ToActorMessage());

                System.Threading.Thread.Sleep(3000);
                Assert.IsTrue(recieved);
            }
            finally
            {
                Telegraph.Instance.UnRegisterAll();
                try { listener?.CloseAsync().Wait(); } catch (Exception) { }
                DeleteHybridConnection(connectionName);
            }
        }
Exemple #2
0
        public void TestSendingBytesoHybridConnection()
        {
            string relayName       = "TestSendingBytesoHybridConnection";
            string responseMessage = "Well hello to you!!";
            string askMessage      = "Hello";

            byte[] msgBytes = Encoding.UTF8.GetBytes(askMessage);
            CreateHybridConnection(relayName);
            Telegraph.Instance.Register(typeof(Exception), FailOnException);
            HybridConnectionListener listener = null;

            try
            {
                listener = CreateHybridListener(relayName, responseMessage);
                var relayConnection = new Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <byte[], byte[]>(Connections.HybridRelayConnectionString, relayName);

                Telegraph.Instance.Register <byte[], Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <byte[], byte[]> >(() => relayConnection);
                var  result  = Telegraph.Instance.Ask(msgBytes.ToActorMessage());
                bool success = result.Wait(System.Diagnostics.Debugger.IsAttached ? TimeSpan.FromMinutes(30) : TimeSpan.FromSeconds(30));
                Assert.IsTrue(success);

                if (success)
                {
                    Assert.IsTrue(Encoding.UTF8.GetString(result.Result.Message as byte[]).Equals(responseMessage));
                }
            }
            finally
            {
                try { listener?.CloseAsync().Wait(); } catch (Exception) { }
                DeleteRelay(relayName);
            }
        }
Exemple #3
0
        public void TestSendingStringToHybridConnection()
        {
            string relayName       = "TestSendingStringToHybridConnection";
            string responseMessage = "Well hello to you!!";

            CreateHybridConnection(relayName);
            Telegraph.Instance.Register(typeof(Exception), FailOnException);
            HybridConnectionListener listener = null;

            try
            {
                listener = CreateHybridListener(relayName, responseMessage);
                var relayConnection = new Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <string, string>(Connections.HybridRelayConnectionString, relayName);

                Telegraph.Instance.Register <string, Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <string, string> >(() => relayConnection);
                var  result  = Telegraph.Instance.Ask("Hello");
                bool success = result.Wait(System.Diagnostics.Debugger.IsAttached ? TimeSpan.FromMinutes(30) : TimeSpan.FromSeconds(30));
                Assert.IsTrue(success);

                if (success)
                {
                    Assert.IsTrue(result.Result.Message.Equals(responseMessage));
                }
            }
            finally
            {
                Telegraph.Instance.UnRegisterAll();
                try { listener?.CloseAsync().Wait(); } catch (Exception) { }
                DeleteRelay(relayName);
            }
        }
Exemple #4
0
        public void TestSendingActorMessageToHybridConnection()
        {
            string relayName            = "TestSendingActorMessageToHybridConnection";
            string sendMessage          = "Hello";
            var    actorSendMessage     = new PingPong.Ping(sendMessage);
            var    actorResponseMessage = new PingPong.Pong();

            CreateHybridConnection(relayName);
            Telegraph.Instance.Register(typeof(Exception), FailOnException);
            HybridConnectionListener listener = null;

            try
            {
                listener = CreateHybridListener(relayName, actorResponseMessage);
                var relayConnection = new Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <PingPong.Ping, PingPong.Pong>(Connections.HybridRelayConnectionString, relayName);

                IActorMessageSerializationActor   serializer   = new IActorMessageSerializationActor();
                IActorMessageDeserializationActor deserializer = new IActorMessageDeserializationActor();
                deserializer.Register <PingPong.Pong>((object msg) => (PingPong.Pong)msg);

                Telegraph.Instance.Register <SerializeMessage <PingPong.Ping>, IActorMessageSerializationActor>(() => serializer);
                Telegraph.Instance.Register <DeserializeMessage <PingPong.Pong>, IActorMessageDeserializationActor>(() => deserializer);

                Telegraph.Instance.Register <PingPong.Ping, Telegraphy.Azure.Relay.Hybrid.RecieveResponseFromRequest <PingPong.Ping, PingPong.Pong> >(() => relayConnection);
                var  resultTask = Telegraph.Instance.Ask(actorSendMessage);
                bool success    = resultTask.Wait(TimeSpan.FromSeconds(10));
                Assert.IsTrue(success);

                if (success)
                {
                    Assert.IsTrue(resultTask.Result is PingPong.Pong);
                }
            }
            finally
            {
                Telegraph.Instance.UnRegisterAll();
                try { listener?.CloseAsync().Wait(); } catch (Exception) { }
                DeleteRelay(relayName);
            }
        }