public void ArticleTagClient_ArticleTagClient_Test() { Mock <Core.HttpClientFactory> httpClientFactory = new Mock <Core.HttpClientFactory>(new Mock <IDependencyResolver>().Object); httpClientFactory.Setup(p => p.Create()).Returns(() => { return(new HttpClient()); }); Mock <IBaasicClientFactory> baasicClientFactory = new Mock <IBaasicClientFactory>(); baasicClientFactory.Setup(f => f.Create(It.IsAny <IClientConfiguration>())).Returns((IClientConfiguration config) => new BaasicClient(config, httpClientFactory.Object, new JsonFormatter())); Mock <IClientConfiguration> clientConfiguration = new Mock <IClientConfiguration>(); clientConfiguration.Setup(p => p.DefaultMediaType).Returns(ClientConfiguration.HalJsonMediaType); clientConfiguration.Setup(p => p.DefaultTimeout).Returns(TimeSpan.FromSeconds(1)); clientConfiguration.Setup(p => p.ApplicationIdentifier).Returns("Test"); clientConfiguration.Setup(p => p.SecureBaseAddress).Returns("https://api.baasic.com/v1"); clientConfiguration.Setup(p => p.BaseAddress).Returns("http://api.baasic.com/v1"); ArticleTagClient target = new ArticleTagClient(clientConfiguration.Object, baasicClientFactory.Object); target.Should().NotBeNull(); target.Configuration.Should().NotBeNull(); }
public void ArticleTagClient_GetAsync_Test() { #region Setup Guid tagId = Guid.NewGuid(); var handler = new Mock <HttpMessageHandler>(); handler.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).Returns((HttpRequestMessage request, CancellationToken cancellationToken) => { HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.InternalServerError); if (request.RequestUri.ToString().EndsWith("NA")) { httpResponseMessage = new HttpResponseMessage(HttpStatusCode.NotFound); httpResponseMessage.Content = new StringContent(""); } else if (request.RequestUri.ToString().EndsWith("Tag")) { httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK); httpResponseMessage.Content = new StringContent(JsonConvert.SerializeObject(new ArticleTag() { Id = tagId, Slug = "Tag", Tag = "Tag" })); } return(Task.FromResult(httpResponseMessage)); }); Mock <Core.HttpClientFactory> httpClientFactory = new Mock <Core.HttpClientFactory>(new Mock <IDependencyResolver>().Object); httpClientFactory.Setup(p => p.Create()).Returns(() => { return(new HttpClient(handler.Object)); }); Mock <IBaasicClientFactory> baasicClientFactory = new Mock <IBaasicClientFactory>(); baasicClientFactory.Setup(f => f.Create(It.IsAny <IClientConfiguration>())).Returns((IClientConfiguration config) => new BaasicClient(config, httpClientFactory.Object, new JsonFormatter())); Mock <IClientConfiguration> clientConfiguration = new Mock <IClientConfiguration>(); clientConfiguration.Setup(p => p.DefaultMediaType).Returns(ClientConfiguration.HalJsonMediaType); clientConfiguration.Setup(p => p.DefaultTimeout).Returns(TimeSpan.FromSeconds(1)); clientConfiguration.Setup(p => p.ApplicationIdentifier).Returns("Test"); clientConfiguration.Setup(p => p.SecureBaseAddress).Returns("https://api.baasic.com/v1"); clientConfiguration.Setup(p => p.BaseAddress).Returns("http://api.baasic.com/v1"); ArticleTagClient target = new ArticleTagClient(clientConfiguration.Object, baasicClientFactory.Object); target.Should().NotBeNull(); #endregion Setup target.GetAsync("NA", "").Result.Should().BeNull(); var expected = target.GetAsync("Tag", "").Result; expected.Should().NotBeNull(); expected.Tag.Should().Be("Tag"); }