public void Zero_length_data_array_is_accepted_and_encoded() { byte[] data = new byte[0]; EncodedDataField encodedEmptyData = new EncodedDataField(data); Assert.AreEqual(data.Length, encodedEmptyData.Length); }
public Will(QoSLevel qos, bool retain, string topic, EncodedDataField message) { QoS = qos; Retain = retain; Topic = topic; Message = message; }
public void Data_length_is_counted_and_encoded_correctly() { UInt16 expectedDataLength = 52; byte[] exampleDataArray = new byte[expectedDataLength]; EncodedDataField encodedDataField = new EncodedDataField(exampleDataArray); Assert.AreEqual(expectedDataLength, encodedDataField.Length); Assert.AreEqual(expectedDataLength.MostSignificantByte(), encodedDataField.Encode().First()); Assert.AreEqual(expectedDataLength.LeastSignificantByte(), encodedDataField.Encode().Skip(1).First()); }
public void Max_length_data_array_is_accepted_and_encoded() { byte[] testData = new byte[65535]; new Random().NextBytes(testData); EncodedDataField encodedMaxLengthData = new EncodedDataField(testData); byte[] encodedDataBytes = encodedMaxLengthData.Encode().Skip(2).ToArray(); Assert.AreEqual(testData.Length, encodedMaxLengthData.Length); for (int i = 0; i < testData.Length; i++) { Assert.AreEqual(testData[i], encodedDataBytes[i]); } }
public void Encoded_data_bytes_match_source_data() { UInt16 testDataLength = 30; byte[] data = new byte[testDataLength]; new Random().NextBytes(data); IByteEncodable edf = new EncodedDataField(data); IEnumerable <byte> encodedData = edf.Encode().Skip(2); for (int i = 0; i < data.Count(); i++) { Assert.AreEqual(data[i], encodedData.ToArray()[i]); } }
public void Will_msg_encoded_when_provided() { EncodedString clientID = new EncodedString("test 1"); EncodedString willTopic = new EncodedString("Will Topic"); EncodedDataField willMsg = new EncodedDataField(utf8.GetBytes("Will Message")); Will w = new Will(QoSLevel.AtMostOnce, false, willTopic, willMsg); IByteEncodable cp = new ConnectPayload(clientID, w); IEnumerable <byte> encodedBytes = cp.Encode(); string encodedMsg = utf8.GetString( new EncodedDataField( encodedBytes.Skip(clientID.Length + 2) .Skip(willTopic.Length + 4) .ToArray())); Assert.IsTrue(utf8.GetString(willMsg.Data.ToArray()) == encodedMsg); }