public void MessageRoundTrip() { List<IMotion> motions = new List<IMotion> { new LinearMotion(1, new Vector(5,10),new Vector(3,5.5)), new CircularMotion(30, 1, new Angle(0), new Angle(0), 1, Vector.Zero), new LinearMotion(500, new Vector(7,20),new Vector(5,100)), new CircularMotion(670, 0, new Angle(0), new Angle(-Math.PI), 1, Vector.Zero), new CircularMotion(1500, 0, new Angle(-Math.PI / 2), new Angle(1), 1, Vector.Zero) }; const string name = "bobby"; var original = new PathMessage(name, motions); var serialiser = new MessageSerialiser(); serialiser.Register(typeof(PathMessage)); var text = serialiser.Serialise(original); var deserialised = (PathMessage)serialiser.Deserialise(text); Assert.AreEqual(name, deserialised.Name); Assert.AreEqual(motions, deserialised.Motion.Path); }
public void RoundTrip() { var original = new SelectedObjectMessage("Louie"); var serialiser = new MessageSerialiser(); serialiser.Register(typeof(SelectedObjectMessage)); var text = serialiser.Serialise(original); var deserialised = (SelectedObjectMessage)serialiser.Deserialise(text); Assert.AreEqual(original.SelectedName, deserialised.SelectedName); }
public void RoundTrip() { var original = new SetPathToTargetMessage(new Vector(5.3, 7), 15000); var serialiser = new MessageSerialiser(); serialiser.Register(typeof(SetPathToTargetMessage)); var text = serialiser.Serialise(original); var deserialised = (SetPathToTargetMessage)serialiser.Deserialise(text) ; Assert.AreEqual(original.WorldPosition, deserialised.WorldPosition); Assert.AreEqual(original.Time, deserialised.Time); }
public void RoundTrip() { const ulong time = 550000; var original = new TimeUpdateMessage(time); var serialiser = new MessageSerialiser(); serialiser.Register(typeof(TimeUpdateMessage)); var text = serialiser.Serialise(original); var deserialised = (TimeUpdateMessage)serialiser.Deserialise(text); Assert.AreEqual(time, deserialised.Time); }
public void MessageRoundTrip() { const string name = "harry"; var original = new RequestPathMessage(name); var serialiser = new MessageSerialiser(); serialiser.Register(typeof(RequestPathMessage)); var text = serialiser.Serialise(original); var deserialised = (RequestPathMessage)serialiser.Deserialise(text); Assert.NotNull(deserialised); Assert.AreEqual(name, deserialised.Name); }
/// <summary> /// Create a new bus that will use the sender and reciever provided communication outside of the buses context /// </summary> /// <param name="messageSender">Shared isntance of the sender</param> /// <param name="messageReceiver">Shared instance of the receiver</param> public MessageBus(IMessageSender messageSender, IMessageReceiver messageReceiver) { m_Lock = new object(); m_Subscribers = new Dictionary <Type, Delegate>(); m_MessageSerialiser = new MessageSerialiser(); m_MessageSerialiser.Register(typeof(SetPathToTarget)); m_MessageSender = messageSender; m_MessageReceiver = messageReceiver; m_Disposer = new Disposer(); m_MessageReceiver.AddListener(ReceiveFromRemote).AddTo(m_Disposer); m_Messages = new ConcurrentQueue <IMessage>(); }
/// <summary> /// Create a new bus that will use the sender and reciever provided communication outside of the buses context /// </summary> /// <param name="messageSender">Shared isntance of the sender</param> /// <param name="messageReceiver">Shared instance of the receiver</param> /// /// <param name="messageList">The collection of message types to register for serialisation</param> public MessageBus(IMessageSender messageSender, IMessageReceiver messageReceiver, IMessageRegistrationList messageList) { m_Lock = new object(); m_Subscribers = new Dictionary <Type, Delegate>(); m_MessageList = messageList; m_MessageSender = messageSender; m_MessageReceiver = messageReceiver; m_MessageSerialiser = new MessageSerialiser(); foreach (var messageType in m_MessageList.Messages) { m_MessageSerialiser.Register(messageType); } m_Disposer = new Disposer(); m_MessageReceiver.AddListener(ReceiveFromRemote).AddTo(m_Disposer); m_Messages = new ConcurrentQueue <IMessage>(); }