Пример #1
0
        public GravatarProxyServiceFacts()
        {
            _messageHandler = new DelegateHttpMessageHandler();
            _features       = new Mock <IFeatureFlagService>();

            var users = new List <User>
            {
                User,
                UnconfirmedUser,
            };

            _users = new Mock <IEntityRepository <User> >();
            _users
            .Setup(u => u.GetAll())
            .Returns(() => users.AsQueryable());

            var httpClient        = new HttpClient(_messageHandler);
            var httpClientFactory = new Mock <IHttpClientFactory>();

            httpClientFactory
            .Setup(f => f.CreateClient("gravatar"))
            .Returns(httpClient);

            _target = new GravatarProxyService(
                httpClientFactory.Object,
                _users.Object,
                _features.Object,
                Mock.Of <ILogger <GravatarProxyService> >());
        }
        public async Task SendAsync_WithCancellationToken_RequestResponseAndCancellationTokenCorrect()
        {
            var expectedRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://test.com");

            var expectedResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);

            var expectedCancellationToken = new CancellationToken();

            HttpRequestMessage actualRequestMessage = null;
            SafeWaitHandle     actualCancellationTokenWaitHandle = null;

            var httpMessageHandler = new DelegateHttpMessageHandler((request, token) =>
            {
                actualRequestMessage = request;
                actualCancellationTokenWaitHandle = token.WaitHandle.SafeWaitHandle;
                return(Task.FromResult(expectedResponseMessage));
            });

            var httpClient = new HttpClient(httpMessageHandler);

            var response = await httpClient.SendAsync(expectedRequestMessage, expectedCancellationToken);

            Assert.Same(expectedRequestMessage, actualRequestMessage);
            Assert.True(expectedCancellationToken.WaitHandle.SafeWaitHandle.DangerousGetHandle()
                        .Equals(actualCancellationTokenWaitHandle.DangerousGetHandle()));
            Assert.Same(expectedResponseMessage, response);
        }
        public async Task SendAsync_WithOutCancellationToken_RequestResponseAndCancellationTokenCorrect()
        {
            var expectedRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://test.com");

            var expectedResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);

            var expectedCancellationToken = new CancellationToken();

            HttpRequestMessage actualRequestMessage = null;

            var httpMessageHandler = new DelegateHttpMessageHandler(request =>
            {
                actualRequestMessage = request;
                return(Task.FromResult(expectedResponseMessage));
            });

            var httpClient = new HttpClient(httpMessageHandler);

            var response = await httpClient.SendAsync(expectedRequestMessage, expectedCancellationToken);

            Assert.Same(expectedRequestMessage, actualRequestMessage);
            Assert.Same(expectedResponseMessage, response);
        }