Exemplo n.º 1
0
        public async Task RequestResponse()
        {
            var scope = await GetScopeAsync();

            var queue = scope.Get <IQueue>();

            var msg = new TestMessage();

            var subResult = await queue.ReplyAsync <TestMessage, TestResponse>((message, _) =>
                                                                               Task.FromResult(new TestResponse {
                Id = message.Id
            }));

            Assert.True(subResult.IsSuccess);

            var response = await queue.RequestAsync <TestMessage, TestResponse>(msg);

            Assert.NotNull(response);
            Assert.Equal(msg.Id, response?.message.Id);

            var unsubResult = await queue.StopReplyAsync <TestMessage, TestResponse>(subResult.SubscriptionId);

            Assert.True(unsubResult);
        }
Exemplo n.º 2
0
        public async Task UnSubscribe()
        {
            var scope = await GetScopeAsync();

            var queue = scope.Get <IQueue>();

            Guid?receivedId = null;
            var  subResult  = await queue.SubscribeAsync <TestMessage>((message, _) =>
            {
                receivedId = message.Id;
                return(Task.FromResult(true));
            });

            Assert.True(subResult.IsSuccess);

            var msg = new TestMessage();

            var result = await queue.PublishAsync(msg);

            Assert.True(result.IsSuccess);

            await Task.Delay(TimeSpan.FromSeconds(1));

            Assert.NotNull(receivedId);

            receivedId = null;
            await queue.UnsubscribeAsync <TestMessage>(subResult.SubscriptionId);

            result = await queue.PublishAsync(msg);

            Assert.True(result.IsSuccess);

            await Task.Delay(TimeSpan.FromSeconds(1));

            Assert.Null(receivedId);
        }