public void GetStronglyTypedGenericWithAttributesResponse() { _mockHttp.When($"{_baseUrl}/items/complete_content_item") .Respond("application/json", File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "Fixtures\\DeliveryClient\\complete_content_item.json"))); var httpClient = _mockHttp.ToHttpClient(); var client = new DeliveryClient(_guid) { CodeFirstModelProvider = { TypeProvider = A.Fake <ICodeFirstTypeProvider>() }, HttpClient = httpClient }; // Arrange A.CallTo(() => client.CodeFirstModelProvider.TypeProvider.GetType("complete_content_type")).ReturnsLazily(() => typeof(ContentItemModelWithAttributes)); A.CallTo(() => client.CodeFirstModelProvider.TypeProvider.GetType("homepage")).ReturnsLazily(() => typeof(Homepage)); ContentItemModelWithAttributes item = (ContentItemModelWithAttributes)client.GetItemAsync <object>("complete_content_item").Result.Item; // Assert Assert.Equal("Text field value", item.TextFieldWithADifferentName); Assert.Equal("<p>Rich text field value</p>", item.RichTextFieldWithADifferentName); Assert.Equal(99, item.NumberFieldWithADifferentName); Assert.Single(item.MultipleChoiceFieldAsRadioButtonsWithADifferentName); Assert.Equal("Radio button 1", item.MultipleChoiceFieldAsRadioButtonsWithADifferentName.First().Name); Assert.Equal(2, item.MultipleChoiceFieldAsCheckboxes.Count()); Assert.Equal("Checkbox 1", item.MultipleChoiceFieldAsCheckboxes.First().Name); Assert.Equal("Checkbox 2", item.MultipleChoiceFieldAsCheckboxes.ElementAt(1).Name); Assert.Equal(new DateTime(2017, 2, 23), item.DateTimeFieldWithADifferentName); Assert.Single(item.AssetFieldWithADifferentName); Assert.Equal("Fire.jpg", item.AssetFieldWithADifferentName.First().Name); Assert.Equal(129170, item.AssetFieldWithADifferentName.First().Size); Assert.Equal("https://assets.kenticocloud.com:443/e1167a11-75af-4a08-ad84-0582b463b010/64096741-b658-46ee-b148-b287fe03ea16/Fire.jpg", item.AssetFieldWithADifferentName.First().Url); Assert.Single(item.ModularContentFieldWithADifferentName); Assert.Equal("Homepage", ((Homepage)item.ModularContentFieldWithADifferentName.First()).System.Name); Assert.Equal("Homepage", ((Homepage)item.ModularContentFieldWithACollectionTypeDefined.First()).System.Name); Assert.True(item.ModularContentFieldWithAGenericTypeDefined.First().CallToAction.Length > 0); Assert.Equal(2, item.CompleteTypeTaxonomyWithADifferentName.Count()); Assert.Equal("Option 1", item.CompleteTypeTaxonomyWithADifferentName.First().Name); }
public void GetStronglyTypedGenericWithAttributesResponse() { _mockHttp .When($"{_baseUrl}/items/complete_content_item") .Respond("application/json", File.ReadAllText(Path.Combine(Environment.CurrentDirectory, $"Fixtures{Path.DirectorySeparatorChar}DeliveryClient{Path.DirectorySeparatorChar}complete_content_item.json"))); var client = InitializeDeliveryClientWithCustomModelProvider(_mockHttp, new PropertyMapper()); // Arrange A.CallTo(() => _mockTypeProvider.GetType("complete_content_type")) .ReturnsLazily(() => typeof(ContentItemModelWithAttributes)); A.CallTo(() => _mockTypeProvider.GetType("homepage")).ReturnsLazily(() => typeof(Homepage)); A.CallTo(() => client.ResiliencePolicyProvider.Policy) .Returns(Policy.HandleResult <HttpResponseMessage>(result => true) .RetryAsync(client.DeliveryOptions.MaxRetryAttempts)); ContentItemModelWithAttributes item = (ContentItemModelWithAttributes)client.GetItemAsync <object>("complete_content_item").Result.Item; // Assert Assert.Equal("Text field value", item.TextFieldWithADifferentName); Assert.Equal("<p>Rich text field value</p>", item.RichTextFieldWithADifferentName); Assert.Equal(99, item.NumberFieldWithADifferentName); Assert.Single(item.MultipleChoiceFieldAsRadioButtonsWithADifferentName); Assert.Equal("Radio button 1", item.MultipleChoiceFieldAsRadioButtonsWithADifferentName.First().Name); Assert.Equal(2, item.MultipleChoiceFieldAsCheckboxes.Count()); Assert.Equal("Checkbox 1", item.MultipleChoiceFieldAsCheckboxes.First().Name); Assert.Equal("Checkbox 2", item.MultipleChoiceFieldAsCheckboxes.ElementAt(1).Name); Assert.Equal(new DateTime(2017, 2, 23), item.DateTimeFieldWithADifferentName); Assert.Single(item.AssetFieldWithADifferentName); Assert.Equal("Fire.jpg", item.AssetFieldWithADifferentName.First().Name); Assert.Equal(129170, item.AssetFieldWithADifferentName.First().Size); Assert.Equal( "https://assets.kenticocloud.com:443/e1167a11-75af-4a08-ad84-0582b463b010/64096741-b658-46ee-b148-b287fe03ea16/Fire.jpg", item.AssetFieldWithADifferentName.First().Url); Assert.Single(item.LinkedItemsFieldWithADifferentName); Assert.Equal("Homepage", ((Homepage)item.LinkedItemsFieldWithADifferentName.First()).System.Name); Assert.Equal("Homepage", ((Homepage)item.LinkedItemsFieldWithACollectionTypeDefined.First()).System.Name); Assert.True(item.LinkedItemsFieldWithAGenericTypeDefined.First().CallToAction.Length > 0); Assert.Equal(2, item.CompleteTypeTaxonomyWithADifferentName.Count()); Assert.Equal("Option 1", item.CompleteTypeTaxonomyWithADifferentName.First().Name); }
public void GetStronglyTypedGenericWithAttributesResponse() { const string SANDBOX_PROJECT_ID = "e1167a11-75af-4a08-ad84-0582b463b010"; // Arrange var client = new DeliveryClient(SANDBOX_PROJECT_ID) { CodeFirstModelProvider = { TypeProvider = A.Fake <ICodeFirstTypeProvider>() } }; A.CallTo(() => client.CodeFirstModelProvider.TypeProvider.GetType("complete_content_type")).ReturnsLazily(() => typeof(ContentItemModelWithAttributes)); A.CallTo(() => client.CodeFirstModelProvider.TypeProvider.GetType("homepage")).ReturnsLazily(() => typeof(Homepage)); // Act ContentItemModelWithAttributes item = (ContentItemModelWithAttributes)client.GetItemAsync <object>("complete_content_item").Result.Item; // Assert Assert.Equal("Text field value", item.TextFieldWithADifferentName); Assert.Equal("<p>Rich text field value</p>", item.RichTextFieldWithADifferentName); Assert.Equal(99, item.NumberFieldWithADifferentName); Assert.Equal(1, item.MultipleChoiceFieldAsRadioButtonsWithADifferentName.Count()); Assert.Equal("Radio button 1", item.MultipleChoiceFieldAsRadioButtonsWithADifferentName.First().Name); Assert.Equal(2, item.MultipleChoiceFieldAsCheckboxes.Count()); Assert.Equal("Checkbox 1", item.MultipleChoiceFieldAsCheckboxes.First().Name); Assert.Equal("Checkbox 2", item.MultipleChoiceFieldAsCheckboxes.ElementAt(1).Name); Assert.Equal(new DateTime(2017, 2, 23), item.DateTimeFieldWithADifferentName); Assert.Equal(1, item.AssetFieldWithADifferentName.Count()); Assert.Equal("Fire.jpg", item.AssetFieldWithADifferentName.First().Name); Assert.Equal(129170, item.AssetFieldWithADifferentName.First().Size); Assert.Equal("https://assets.kenticocloud.com:443/e1167a11-75af-4a08-ad84-0582b463b010/64096741-b658-46ee-b148-b287fe03ea16/Fire.jpg", item.AssetFieldWithADifferentName.First().Url); Assert.Equal(1, item.ModularContentFieldWithADifferentName.Count()); Assert.Equal("Homepage", ((Homepage)item.ModularContentFieldWithADifferentName.First()).System.Name); Assert.Equal("Homepage", ((Homepage)item.ModularContentFieldWithACollectionTypeDefined.First()).System.Name); Assert.True(item.ModularContentFieldWithAGenericTypeDefined.First().CallToAction.Length > 0); Assert.Equal(2, item.CompleteTypeTaxonomyWithADifferentName.Count()); Assert.Equal("Option 1", item.CompleteTypeTaxonomyWithADifferentName.First().Name); }