public void SubscribeTest()
        {
            var testEvent = new TestCreatedEvent();
            var signal    = new OperationCompletedSignal(testEvent);

            var mock = new Mock <ISubscriptionClient>();

            mock.Setup(s => s.RegisterSessionHandler(It.IsAny <Func <IMessageSession, Message, CancellationToken, Task> >(), It.IsAny <SessionHandlerOptions>()))
            .Callback <Func <IMessageSession, Message, CancellationToken, Task>, SessionHandlerOptions>((handler, _) =>
            {
                var msg         = CreateBusMessage(signal);
                var sessionMock = new Mock <IMessageSession>();
                handler?.Invoke(sessionMock.Object, msg, CancellationToken.None);
            });

            var logMock   = new Mock <ILogger <AzureReportBusClient> >();
            var reportBus = new AzureReportBusClient(logMock.Object, mock.Object);

            IMessage expectedMessage = null;

            reportBus.Subscribe(message =>
            {
                expectedMessage = message;
                return(Task.CompletedTask);
            });

            expectedMessage.Should().BeEquivalentTo(signal);
        }
示例#2
0
        public void OperationCompletedSignal_Always_CopiesMessageData()
        {
            var @event = fixture.Create <TestCreatedEvent>();

            var signal = new OperationCompletedSignal(@event);

            signal.Should().BeEquivalentTo(@event, options => options.ForMessage());
        }
示例#3
0
        public void OperationCompletedSignal_Always_Serializable()
        {
            var source = new OperationCompletedSignal(fixture.Create <TestCreatedEvent>());

            var serialized   = JsonConvert.SerializeObject(source);
            var deserialized = JsonConvert.DeserializeObject <OperationCompletedSignal>(serialized);

            deserialized.Should().BeEquivalentTo(source);
        }