public void SingleTopic() { // Message Specs________________ // <A2><08><00><03><00><04>fred (Unsubscribe to topic fred) var sampleMessage = new[] { (byte)0xA2, (byte)0x08, (byte)0x00, (byte)0x03, (byte)0x00, (byte)0x04, (byte)'f', (byte)'r', (byte)'e', (byte)'d', }; MqttMessage baseMessage = MqttMessage.CreateFrom(sampleMessage); Console.WriteLine(baseMessage.ToString()); // check that the message was correctly identified as a connect message. Assert.IsType <MqttUnsubscribeMessage>(baseMessage); MqttUnsubscribeMessage message = (MqttUnsubscribeMessage)baseMessage; Assert.Equal <int>(1, message.Payload.Subscriptions.Count); Assert.True(message.Payload.Subscriptions.Contains("fred")); }
public void MultiTopic() { // double topic unsubscribe var expected = new[] { (byte)0xA2, (byte)0x0E, (byte)0x00, (byte)0x03, (byte)0x00, (byte)0x04, (byte)'f', (byte)'r', (byte)'e', (byte)'d', (byte)0x00, (byte)0x04, (byte)'m', (byte)'a', (byte)'r', (byte)'k', }; MqttMessage msg = new MqttUnsubscribeMessage() .FromTopic("fred") .FromTopic("mark") .WithMessageIdentifier(3) .ExpectAcknowledgement(); Console.WriteLine(msg); byte[] actual = MessageSerializationHelper.GetMessageBytes(msg); Assert.Equal <int>(expected.Length, actual.Length); Assert.Equal <byte>(expected[0], actual[0]); // msg type of header Assert.Equal <byte>(expected[1], actual[1]); // remaining length Assert.Equal <byte>(expected[2], actual[2]); // Start of VH: MsgID Byte1 Assert.Equal <byte>(expected[3], actual[3]); // MsgID Byte 2 Assert.Equal <byte>(expected[4], actual[4]); // Topic Length B1 Assert.Equal <byte>(expected[5], actual[5]); // Topic Length B2 Assert.Equal <byte>(expected[6], actual[6]); // f Assert.Equal <byte>(expected[7], actual[7]); // r Assert.Equal <byte>(expected[8], actual[8]); // e Assert.Equal <byte>(expected[9], actual[9]); // d Assert.Equal <byte>(expected[10], actual[10]); // Topic Length B1 Assert.Equal <byte>(expected[11], actual[11]); // Topic Length B2 Assert.Equal <byte>(expected[12], actual[12]); // f Assert.Equal <byte>(expected[13], actual[13]); // r Assert.Equal <byte>(expected[14], actual[14]); // e Assert.Equal <byte>(expected[15], actual[15]); // d }
public void ClearSubscriptions() { MqttUnsubscribeMessage msg = new MqttUnsubscribeMessage() .FromTopic("fred") .FromTopic("mark") .WithMessageIdentifier(3) .ExpectAcknowledgement(); Console.WriteLine(msg); Assert.Equal <int>(2, msg.Payload.Subscriptions.Count); msg.Payload.ClearSubscriptions(); Assert.Equal <int>(0, msg.Payload.Subscriptions.Count); }