public void Publish_HasSkipped() { using var mock = AutoMock.GetLoose(); mock.Mock <IManagedMqttClient>() .Setup(x => x.PublishAsync(It.IsAny <ManagedMqttApplicationMessage>())).Returns(Task.CompletedTask); mock.Mock <IManagedMqttClient>() .SetupProperty(x => x.ApplicationMessageProcessedHandler); mock.Mock <IManagedMqttClient>() .SetupProperty(x => x.ApplicationMessageSkippedHandler); mock.Mock <IManagedMqttClient>() .SetupGet(x => x.IsConnected) .Returns(true); var rxMqttClinet = mock.Create <RxMqttClient>(); var message = new ManagedMqttApplicationMessageBuilder() .WithApplicationMessage(new MqttApplicationMessageBuilder() .WithTopic("T") .WithPayload("P") .WithExactlyOnceQoS() .Build()) .Build(); var observable = Observable.Return(message); var @event = new ApplicationMessageSkippedEventArgs(message); var testScheduler = new TestScheduler(); testScheduler.ScheduleAbsolute(@event, 5, (_, state) => { var IManagedMqttClientMock = mock.Mock <IManagedMqttClient>().Object; mock.Mock <IManagedMqttClient>().Object.ApplicationMessageSkippedHandler.HandleApplicationMessageSkippedAsync(state); return(Disposable.Empty); }); // act var testObserver = testScheduler.Start(() => observable.PublishOn(rxMqttClinet), 0, 1, 10); Assert.Single(testObserver.Messages.Where(m => m.Value.Kind == System.Reactive.NotificationKind.OnNext)); Assert.Single(testObserver.Messages.Where(m => m.Value.Kind == System.Reactive.NotificationKind.OnCompleted)); Assert.Empty(testObserver.Messages.Where(m => m.Value.Kind == System.Reactive.NotificationKind.OnError)); var onNext = testObserver.Messages.Where(m => m.Value.Kind == System.Reactive.NotificationKind.OnNext).Single(); Assert.Equal(message, onNext.Value.Value.MqttApplicationMessage); Assert.Equal(RxMqttClientPublishReasonCode.HasSkipped, onNext.Value.Value.ReasonCode); Assert.Null(onNext.Value.Value.Exception); }
public void ApplicationMessageSkippedHandler() { using var mock = AutoMock.GetLoose(); mock.Mock <IManagedMqttClient>() .SetupProperty(x => x.ApplicationMessageSkippedHandler); var rxMqttClinet = mock.Create <RxMqttClient>(); var testScheduler = new TestScheduler(); var message = new ManagedMqttApplicationMessage(); var @event = new ApplicationMessageSkippedEventArgs(message); testScheduler.ScheduleAsync(TimeSpan.FromTicks(2), (_, __) => mock.Mock <IManagedMqttClient>().Object.ApplicationMessageSkippedHandler.HandleApplicationMessageSkippedAsync(@event)); // act var testObserver = testScheduler.Start(() => rxMqttClinet.ApplicationMessageSkippedEvent, 0, 0, 4); Assert.Equal(1, testObserver.Messages.Count); Assert.Equal(NotificationKind.OnNext, testObserver.Messages.Last().Value.Kind); Assert.Equal(@event, testObserver.Messages.Last().Value.Value); Assert.Null(rxMqttClinet.InternalClient.SynchronizingSubscriptionsFailedHandler); }
private static void ApplicationMessageSkippedHandlerMethod(ApplicationMessageSkippedEventArgs obj) { Console.WriteLine("ApplicationMessageSkippedHandlerMethod"); }
private Task OnMessageSkipped(ApplicationMessageSkippedEventArgs e) { Console.WriteLine($"OnMessageSkipped"); return(Task.CompletedTask); }
private void OnApplicationMessageSkipped(ApplicationMessageSkippedEventArgs eventArgs) { Logger.LogWarning("Request skipped."); }
private void ApplicationMessageSkippedHandler(ApplicationMessageSkippedEventArgs obj) { Console.WriteLine($"SKIPPED: {obj.ApplicationMessage.ApplicationMessage.Topic} | {Encoding.UTF8.GetString(obj.ApplicationMessage.ApplicationMessage.Payload)}"); }