AddHttpHandler() private method

private AddHttpHandler ( HttpMessageHandlerMock httpMock ) : void
httpMock HttpMessageHandlerMock
return void
示例#1
0
        private async Task <IReadOnlyCollection <Payload> > ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudBlobStorage, Mocks.InboxHttpHandlerMock inboxMock, ICryptoProvider cryptoProvider, OwnEndpoint receiver)
        {
            Requires.NotNull(cloudBlobStorage, "cloudBlobStorage");
            Requires.NotNull(receiver, "receiver");

            var httpHandler = new Mocks.HttpMessageHandlerMock();

            cloudBlobStorage.AddHttpHandler(httpHandler);
            inboxMock.Register(httpHandler);

            var channel = new Channel {
                HttpClient         = new HttpClient(httpHandler),
                HttpClientLongPoll = new HttpClient(httpHandler),
                CloudBlobStorage   = cloudBlobStorage,
                CryptoServices     = cryptoProvider,
                Endpoint           = receiver,
                Logger             = this.logger,
            };

            var progressMessage = new TaskCompletionSource <Payload>();
            var progress        = new Progress <Payload>(m => progressMessage.SetResult(m));

            var messages = await channel.ReceiveAsync(progress : progress);

            Assert.That(messages.Count, Is.EqualTo(1));
            await progressMessage.Task;

            Assert.That(progressMessage.Task.Result, Is.SameAs(messages.Single()));
            return(messages);
        }
示例#2
0
        private async Task SendMessageAsync(Mocks.CloudBlobStorageProviderMock cloudStorage, Mocks.InboxHttpHandlerMock inboxMock, CryptoSettings senderCrypto, OwnEndpoint senderEndpoint, Endpoint receiverEndpoint)
        {
            Requires.NotNull(cloudStorage, "cloudStorage");
            Requires.NotNull(senderCrypto, "senderCrypto");
            Requires.NotNull(senderEndpoint, "senderEndpoint");
            Requires.NotNull(receiverEndpoint, "receiverEndpoint");

            var httpHandler = new Mocks.HttpMessageHandlerMock();

            cloudStorage.AddHttpHandler(httpHandler);

            inboxMock.Register(httpHandler);

            var sentMessage = Valid.Message;

            var channel = new Channel()
            {
                HttpClient       = new HttpClient(httpHandler),
                CloudBlobStorage = cloudStorage,
                CryptoServices   = senderCrypto,
                Endpoint         = senderEndpoint,
                Logger           = this.logger,
            };

            await channel.PostAsync(sentMessage, new[] { receiverEndpoint }, Valid.ExpirationUtc);
        }
示例#3
0
        private async Task ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudStorage, Mocks.InboxHttpHandlerMock inboxMock, CryptoSettings receiverCrypto, OwnEndpoint receiverEndpoint)
        {
            Requires.NotNull(cloudStorage, "cloudStorage");
            Requires.NotNull(receiverCrypto, "receiverCrypto");
            Requires.NotNull(receiverEndpoint, "receiverEndpoint");

            var httpHandler = new Mocks.HttpMessageHandlerMock();

            cloudStorage.AddHttpHandler(httpHandler);
            inboxMock.Register(httpHandler);

            var channel = new Channel
            {
                HttpClient         = new HttpClient(httpHandler),
                HttpClientLongPoll = new HttpClient(httpHandler),
                CloudBlobStorage   = cloudStorage,
                CryptoServices     = receiverCrypto,
                Endpoint           = receiverEndpoint,
                Logger             = this.logger,
            };

            var messages = await channel.ReceiveAsync();

            Assert.Equal(1, messages.Count);
            Assert.Equal(Valid.Message, messages[0].Payload);
        }
示例#4
0
        private async Task SendMessageAsync(Mocks.CloudBlobStorageProviderMock cloudBlobStorage, Mocks.InboxHttpHandlerMock inboxMock, ICryptoProvider cryptoProvider, OwnEndpoint sender, Endpoint receiver, Payload message)
        {
            Requires.NotNull(cloudBlobStorage, "cloudBlobStorage");
            Requires.NotNull(sender, "sender");
            Requires.NotNull(message, "message");

            var httpHandler = new Mocks.HttpMessageHandlerMock();

            cloudBlobStorage.AddHttpHandler(httpHandler);
            inboxMock.Register(httpHandler);

            var channel = new Channel()
            {
                HttpClient       = new HttpClient(httpHandler),
                CloudBlobStorage = cloudBlobStorage,
                CryptoServices   = cryptoProvider,
                Endpoint         = sender,
                Logger           = this.logger,
            };

            await channel.PostAsync(Valid.Message, new[] { receiver }, Valid.ExpirationUtc);
        }
示例#5
0
        private async Task <IReadOnlyCollection <Channel.PayloadReceipt> > ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudBlobStorage, Mocks.InboxHttpHandlerMock inboxMock, CryptoSettings cryptoProvider, OwnEndpoint receiver, bool expectMessage = true)
        {
            Requires.NotNull(cloudBlobStorage, "cloudBlobStorage");
            Requires.NotNull(receiver, "receiver");

            var httpHandler = new Mocks.HttpMessageHandlerMock();

            cloudBlobStorage.AddHttpHandler(httpHandler);
            inboxMock.Register(httpHandler);

            var channel = new Channel
            {
                HttpClient         = new HttpClient(httpHandler),
                HttpClientLongPoll = new HttpClient(httpHandler),
                CloudBlobStorage   = cloudBlobStorage,
                CryptoServices     = cryptoProvider,
                Endpoint           = receiver,
                Logger             = this.logger,
            };

            var progressMessage = new TaskCompletionSource <Payload>();
            var progress        = new Progress <Channel.PayloadReceipt>(m => progressMessage.SetResult(m.Payload));

            var messages = await channel.ReceiveAsync(progress : progress);

            if (expectMessage)
            {
                Assert.Equal(1, messages.Count);
                await progressMessage.Task;
                Assert.Same(progressMessage.Task.Result, messages.Single().Payload);
            }
            else
            {
                Assert.Equal(0, messages.Count);
            }

            return(messages);
        }