Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }