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); } }
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); } }
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); } }
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); } }