public void TestMethodRouting() { var client = new Mock <IMqttClient>(); client.Setup(client => client.SubscribeAsync(It.IsAny <MqttClientSubscribeOptions>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(new MqttClientSubscribeResult() { Items = { new MqttClientSubscribeResultItem(new TopicFilter(), MqttClientSubscribeResultCode.GrantedQoS0) } })); var mqtt = new MqttClientService("qwerty", client.Object); bool didCall = false; mqtt.Subscribe("a/b/c", (MqttClientService.NotificationMessage message) => { didCall = true; return(null); }).Wait(); var payload = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(new[] { "test" })); mqtt.HandleApplicationMessageReceivedAsync(new MqttApplicationMessageReceivedEventArgs("qwerty", new MqttApplicationMessage() { Payload = payload, Topic = "a/b/c" })).Wait(); Assert.That(didCall); }
public void TestSubscribe() { var client = new Mock <IMqttClient>(); client.Setup(client => client.SubscribeAsync(It.IsAny <MqttClientSubscribeOptions>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(new MqttClientSubscribeResult() { Items = { new MqttClientSubscribeResultItem(new TopicFilter(), MqttClientSubscribeResultCode.GrantedQoS0) } })); var mqtt = new MqttClientService("qwerty", client.Object); mqtt.Subscribe("a/b/c", (MqttClientService.NotificationMessage message) => { return(null); }); client.Verify(client => client.SubscribeAsync(It.IsAny <MqttClientSubscribeOptions>(), It.IsAny <CancellationToken>())); }
public void TestParameterSpreadTooManyArguments() { var client = new Mock <IMqttClient>(); client.Setup(client => client.SubscribeAsync(It.IsAny <MqttClientSubscribeOptions>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(new MqttClientSubscribeResult() { Items = { new MqttClientSubscribeResultItem(new TopicFilter(), MqttClientSubscribeResultCode.GrantedQoS0) } })); var mqtt = new MqttClientService("qwerty", client.Object); var mock = new Mock <IMockCapability>(); mock.Setup(cap => cap.MethodB(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())); var methodInfo = typeof(IMockCapability).GetMethod(nameof(IMockCapability.MethodB)); Assume.That(methodInfo, Is.Not.Null); mqtt.Subscribe("a/b/c", methodInfo, mock.Object).Wait(); var payload = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(new object[] { "test", "test", "42", "testytest" })); mqtt.HandleApplicationMessageReceivedAsync(new MqttApplicationMessageReceivedEventArgs("qwerty", new MqttApplicationMessage() { Payload = payload, Topic = "a/b/c" })).Wait(); mock.Verify(cap => cap.MethodB(It.Is <string>(s => s == "test"), It.Is <string>(s => s == "test"), It.Is <int>(s => s == 42))); }