public async void ResolveLinksInStronglyTypedModel() { var mockHttp = new MockHttpMessageHandler(); string guid = Guid.NewGuid().ToString(); string url = $"https://deliver.kontent.ai/{guid}/items/coffee_processing_techniques"; mockHttp.When(url). Respond("application/json", await File.ReadAllTextAsync(Path.Combine(Environment.CurrentDirectory, $"Fixtures{Path.DirectorySeparatorChar}ContentLinkResolver{Path.DirectorySeparatorChar}coffee_processing_techniques.json"))); var deliveryOptions = DeliveryOptionsFactory.Create(new DeliveryOptions { ProjectId = guid }); var options = DeliveryOptionsFactory.Create(new DeliveryOptions { ProjectId = guid }); var deliveryHttpClient = new DeliveryHttpClient(mockHttp.ToHttpClient()); var resiliencePolicyProvider = new DefaultRetryPolicyProvider(options); var contentLinkUrlResolver = new CustomContentLinkUrlResolver(); var contentItemsProcessor = InlineContentItemsProcessorFactory.Create(); var modelProvider = new ModelProvider(contentLinkUrlResolver, contentItemsProcessor, new CustomTypeProvider(), new PropertyMapper(), new DeliveryJsonSerializer(), new HtmlParser()); var client = new DeliveryClient( deliveryOptions, modelProvider, resiliencePolicyProvider, null, deliveryHttpClient ); string expected = "Check out our <a data-item-id=\"0c9a11bb-6fc3-409c-b3cb-f0b797e15489\" href=\"http://example.org/brazil-natural-barra-grande\">Brazil Natural Barra Grande</a> coffee for a tasty example."; var item = await client.GetItemAsync <Article>("coffee_processing_techniques"); Assert.Contains(expected, item.Item.BodyCopy); }
private IDeliveryClient GetDeliveryClient(Action mockAction) { mockAction(); var deliveryHttpClient = new DeliveryHttpClient(_mockHttp.ToHttpClient()); var deliveryOptions = DeliveryOptionsFactory.Create(new DeliveryOptions { ProjectId = _guid }); var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>(); var contentItemsProcessor = A.Fake <IInlineContentItemsProcessor>(); var contentPropertyMapper = new PropertyMapper(); var contentTypeProvider = new CustomTypeProvider(); var serializer = new DeliveryJsonSerializer(); var modelProvider = new ModelProvider(contentLinkUrlResolver, contentItemsProcessor, contentTypeProvider, contentPropertyMapper, serializer, new HtmlParser()); var retryPolicy = A.Fake <IRetryPolicy>(); var retryPolicyProvider = A.Fake <IRetryPolicyProvider>(); A.CallTo(() => retryPolicyProvider.GetRetryPolicy()).Returns(retryPolicy); A.CallTo(() => retryPolicy.ExecuteAsync(A <Func <Task <HttpResponseMessage> > > ._)) .ReturnsLazily(call => call.GetArgument <Func <Task <HttpResponseMessage> > >(0)()); var client = new DeliveryClient( deliveryOptions, modelProvider, retryPolicyProvider, contentTypeProvider, deliveryHttpClient, serializer ); return(client); }
public void BuildWithOptionalSteps_ReturnsDeliveryClientWithSetInstances() { var mockModelProvider = A.Fake <IModelProvider>(); var mockRetryPolicyProvider = A.Fake <IRetryPolicyProvider>(); var mockPropertyMapper = A.Fake <IPropertyMapper>(); var mockContentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>(); var mockInlineContentItemsProcessor = A.Fake <IInlineContentItemsProcessor>(); var mockDefaultInlineContentItemsResolver = A.Fake <IInlineContentItemsResolver <object> >(); var mockUnretrievedInlineContentItemsResolver = A.Fake <IInlineContentItemsResolver <UnretrievedContentItem> >(); var mockAnContentItemsResolver = A.Fake <IInlineContentItemsResolver <CompleteContentItemModel> >(); var mockTypeProvider = A.Fake <ITypeProvider>(); var mockDeliveryHttpClient = new DeliveryHttpClient(new MockHttpMessageHandler().ToHttpClient()); var deliveryClient = (Delivery.DeliveryClient)DeliveryClientBuilder .WithProjectId(ProjectId) .WithDeliveryHttpClient(mockDeliveryHttpClient) .WithContentLinkUrlResolver(mockContentLinkUrlResolver) .WithInlineContentItemsProcessor(mockInlineContentItemsProcessor) .WithInlineContentItemsResolver(mockDefaultInlineContentItemsResolver) .WithInlineContentItemsResolver(mockUnretrievedInlineContentItemsResolver) .WithInlineContentItemsResolver(mockAnContentItemsResolver) .WithModelProvider(mockModelProvider) .WithPropertyMapper(mockPropertyMapper) .WithRetryPolicyProvider(mockRetryPolicyProvider) .WithTypeProvider(mockTypeProvider) .Build(); Assert.Equal(ProjectId, deliveryClient.DeliveryOptions.CurrentValue.ProjectId); Assert.Equal(mockModelProvider, deliveryClient.ModelProvider); Assert.Equal(mockRetryPolicyProvider, deliveryClient.RetryPolicyProvider); Assert.Equal(mockTypeProvider, deliveryClient.TypeProvider); Assert.Equal(mockDeliveryHttpClient, deliveryClient.DeliveryHttpClient); }
public async void GetItemAsync() { // Arrange const string testUrl = "https://tests.fake.url"; var deliveryOptions = MockDeliveryOptions(testUrl); var deliveryHttpClient = new DeliveryHttpClient(MockHttpClient(testUrl)); var deliveryClient = MockDeliveryClient(deliveryOptions, deliveryHttpClient); // Act var contentItem = await deliveryClient.GetItemAsync("test"); // Assert Assert.Equal("1bd6ba00-4bf2-4a2b-8334-917faa686f66", contentItem.Item.System.Id); }
internal static DeliveryClient GetMockedDeliveryClientWithOptions(DeliveryOptions options, MockHttpMessageHandler httpMessageHandler = null) { var deliveryHttpClient = new DeliveryHttpClient(httpMessageHandler != null ? httpMessageHandler.ToHttpClient() : MockHttp.ToHttpClient()); var client = new DeliveryClient( DeliveryOptionsFactory.CreateMonitor(options), _mockModelProvider, _mockResiliencePolicyProvider, _mockTypeProvider, deliveryHttpClient, _serializer ); return(client); }
internal static DeliveryClient GetMockedDeliveryClientWithOptions(DeliveryOptions options, MockHttpMessageHandler httpMessageHandler = null) { var deliveryHttpClient = new DeliveryHttpClient(httpMessageHandler != null ? httpMessageHandler.ToHttpClient() : MockHttp.ToHttpClient()); var client = new DeliveryClient( DeliveryOptionsFactory.CreateMonitor(options), new ContentLinkResolver(_mockContentLinkUrlResolver), _mockInlineContentItemsProcessor, _mockModelProvider, _mockResiliencePolicyProvider, _mockTypeProvider, _mockPropertyMapper, deliveryHttpClient ); return(client); }
private DeliveryClient InitializeDeliveryClient(MockHttpMessageHandler mockHttp) { var deliveryHttpClient = new DeliveryHttpClient(mockHttp.ToHttpClient()); var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>(); var deliveryOptions = DeliveryOptionsFactory.Create(new DeliveryOptions { ProjectId = _guid }); var retryPolicy = A.Fake <IRetryPolicy>(); var retryPolicyProvider = A.Fake <IRetryPolicyProvider>(); A.CallTo(() => retryPolicyProvider.GetRetryPolicy()).Returns(retryPolicy); A.CallTo(() => retryPolicy.ExecuteAsync(A <Func <Task <HttpResponseMessage> > > ._)).ReturnsLazily(c => c.GetArgument <Func <Task <HttpResponseMessage> > >(0)()); var modelProvider = new ModelProvider(contentLinkUrlResolver, null, new CustomTypeProvider(), new PropertyMapper(), new DeliveryJsonSerializer(), new HtmlParser()); var client = new DeliveryClient(deliveryOptions, modelProvider, retryPolicyProvider, null, deliveryHttpClient); return(client); }