public void StatusReply_TestEverything() { AgentInfo agentInfo = new AgentInfo(1001, AgentInfo.PossibleAgentType.BrilliantStudent) { ANumber = "A0001", FirstName = "Joe", LastName = "Jone" }; StatusReply r1 = new StatusReply(Reply.PossibleStatus.Success, agentInfo); Assert.AreEqual(Reply.PossibleStatus.Success, r1.Status); Assert.AreSame(agentInfo, r1.Info); r1 = new StatusReply(Reply.PossibleStatus.Success, agentInfo, "test note"); Assert.AreEqual(Reply.PossibleStatus.Success, r1.Status); Assert.AreSame(agentInfo, r1.Info); Assert.AreEqual("test note", r1.Note); ByteList byteList = new ByteList(); r1.Encode(byteList); Message msg = Message.Create(byteList); Assert.IsNotNull(msg); Assert.IsTrue(msg is StatusReply); StatusReply r2 = msg as StatusReply; Assert.AreEqual(r1.Status, r2.Status); Assert.AreEqual(r1.Info.Id, r2.Info.Id); Assert.AreEqual(r1.Info.LastName, r2.Info.LastName); Assert.AreEqual(r1.Note, r2.Note); }
/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> new public static Reply Create(ByteList messageBytes) { Reply result = null; if (messageBytes == null || messageBytes.RemainingToRead < MinimumEncodingLength) { throw new ApplicationException("Invalid message byte array"); } Int16 msgType = messageBytes.PeekInt16(); switch (msgType) { case (Int16)MESSAGE_CLASS_IDS.AckNak: result = AckNak.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ReadyReply: result = ReadyReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ResourceReply: result = ResourceReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.ConfigurationReply: result = ConfigurationReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.PlayingFieldReply: result = PlayingFieldReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.AgentListReply: result = AgentListReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.StatusReply: result = StatusReply.Create(messageBytes); break; case (Int16)MESSAGE_CLASS_IDS.EndUpdateStream: result = EndUpdateStream.Create(messageBytes); break; default: throw new ApplicationException("Invalid Message Class Id"); } return(result); }
/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> public static new StatusReply Create(ByteList messageBytes) { StatusReply result = null; if (messageBytes==null || messageBytes.RemainingToRead<MinimumEncodingLength) throw new ApplicationException("Invalid message byte array"); if (messageBytes.PeekInt16() != ClassId) throw new ApplicationException("Invalid message class id"); else { result = new StatusReply(); result.Decode(messageBytes); } return result; }
/// <summary> /// Factor method to create a message from a byte list /// </summary> /// <param name="messageBytes">A byte list from which the message will be decoded</param> /// <returns>A new message of the right specialization</returns> new public static StatusReply Create(ByteList messageBytes) { StatusReply result = null; if (messageBytes == null || messageBytes.RemainingToRead < MinimumEncodingLength) { throw new ApplicationException("Invalid message byte array"); } if (messageBytes.PeekInt16() != ClassId) { throw new ApplicationException("Invalid message class id"); } else { result = new StatusReply(); result.Decode(messageBytes); } return(result); }