public async void GetItemsAsync() { var client = new DeliveryClient(PROJECT_ID); var response = await client.GetItemsAsync(new EqualsFilter("system.type", "cafe")); Assert.NotEmpty(response.Items); }
public ContentLinkResolverTests() { client = new DeliveryClient(PROJECT_ID) { CodeFirstModelProvider = { TypeProvider = new CustomTypeProvider() } }; }
public DeliveryClientTests() { client = new DeliveryClient(PROJECT_ID) { CodeFirstModelProvider = { TypeProvider = new CustomTypeProvider() } }; }
internal static void AssertDefaultDependencies(this DeliveryClient client) { client.AssertInlineContentItemTypesWithResolver().AssertDefaultDependenciesWithCustomModelProvider <ModelProvider>(); Assert.IsType <PropertyMapper>(((ModelProvider)client.ModelProvider).PropertyMapper); Assert.IsType <DefaultContentLinkUrlResolver>(((ModelProvider)client.ModelProvider).ContentLinkUrlResolver); Assert.IsType <InlineContentItemsProcessor>(((ModelProvider)client.ModelProvider).InlineContentItemsProcessor); }
private void btnAddRoute_Click(object sender, EventArgs e) { Route route = new Route(); route.id = int.Parse(tbox_addRoute_id.Text); route.startingPoint = (Location)cmb_addRoute_startingPoint.SelectedItem; route.destination = (Location)cmb_addRoute_destination.SelectedItem; route.distance = double.Parse(tbox_addRoute_distance.Text); route.driver = (Worker)cmb_addRoute_driver.SelectedItem; route.vehicle = (Vehicle)cmb_addRoute_Vehicle.SelectedItem; route.startDate = dtp_addRoute_startDate.Value; route.finished = false; try { DeliveryHolder.routes.Add(route); DeliveryClient.InsertRoute(route); clearTab(tabPageRoutes); tbox_addRoute_id.Text = DeliveryHolder.routes.Count == 0 ? "1" : (DeliveryHolder.routes.Count + 1).ToString(); WorkerHolder.avaliableWorkers = WorkerClient.GetAavalibleWorkers(); DeliveryHolder.avaliableVehicles = DeliveryClient.GetAvalibleVehicles(); setupRouteCmb(); } catch (Exception) { MessageBox.Show("Failed to add route"); } }
public async void SecuredProductionAddCorrectHeader() { var securityKey = "someKey"; var options = new DeliveryOptions { ProjectId = _guid, UseSecuredProductionApi = true, SecuredProductionApiKey = securityKey }; _mockHttp.Expect($"{_baseUrl}/items") .WithHeaders("Authorization", $"Bearer {securityKey}") .Respond("application/json", File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "Fixtures\\DeliveryClient\\items.json"))); var mockHttpClient = _mockHttp.ToHttpClient(); var client = new DeliveryClient(options) { HttpClient = mockHttpClient }; await client.GetItemsAsync(); _mockHttp.VerifyNoOutstandingExpectation(); }
public async Task OnGetAsync() { DeliveryClient Client = new DeliveryClient("ae8a7889-452f-461c-a741-0f4ca3950fab"); DeliveryItemResponse response = await Client.GetItemAsync("home"); homePage = response.Item; }
public void GetTypeAsync_NotFound() { var client = new DeliveryClient(PROJECT_ID); AsyncTestDelegate action = async() => await client.GetTypeAsync("unequestrian_nonadjournment_sur_achoerodus"); Assert.ThrowsAsync <DeliveryException>(action); }
public void GetTypesAsync() { var client = new DeliveryClient(PROJECT_ID); var response = Task.Run(() => client.GetTypesAsync(new SkipParameter(1))).Result; Assert.GreaterOrEqual(response.Types.Count, 1); }
public void GetItemAsync_NotFound() { var client = new DeliveryClient(PROJECT_ID); AsyncTestDelegate action = async() => await client.GetItemAsync("unscintillating_hemerocallidaceae_des_iroquois"); Assert.ThrowsAsync <DeliveryException>(action); }
public void GetItemsAsync() { var client = new DeliveryClient(PROJECT_ID); var response = Task.Run(() => client.GetItemsAsync(new EqualsFilter("system.type", "cafe"))).Result; Assert.GreaterOrEqual(response.Items.Count, 1); }
public void QueryParameters() { var client = new DeliveryClient(PROJECT_ID); var parameters = new IQueryParameter[] { new AllFilter("elements.personas", "barista", "coffee", "blogger"), new AnyFilter("elements.personas", "barista", "coffee", "blogger"), new ContainsFilter("system.sitemap_locations", "cafes"), new EqualsFilter("elements.product_name", "Hario V60"), new GreaterThanFilter("elements.price", "1000"), new GreaterThanOrEqualFilter("elements.price", "50"), new InFilter("system.type", "cafe", "coffee"), new LessThanFilter("elements.price", "10"), new LessThanOrEqualFilter("elements.price", "4"), new RangeFilter("elements.country", "Guatemala", "Nicaragua"), new DepthParameter(2), new ElementsParameter("price", "product_name"), new LimitParameter(10), new OrderParameter("elements.price", SortOrder.Descending), new SkipParameter(2) }; var response = Task.Run(() => client.GetItemsAsync(parameters)).Result; Assert.AreEqual(0, response.Items.Count); }
public void GetContentElementsAsync_NotFound() { var client = new DeliveryClient(PROJECT_ID); AsyncTestDelegate action = async() => await client.GetContentElementAsync("anticommunistical_preventure_sur_helxine", "unlacerated_topognosis_sur_nonvigilantness"); Assert.ThrowsAsync <DeliveryException>(action); }
public async void GetTypesAsync() { var client = new DeliveryClient(PROJECT_ID); var response = await client.GetTypesAsync(new SkipParameter(1)); Assert.NotEmpty(response.Types); }
public async void GetTypeAsync() { mockHttp.When($"{baseUrl}/types/article"). Respond("application/json", File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "Fixtures\\DeliveryClient\\article.json"))); mockHttp.When($"{baseUrl}/types/coffee"). Respond("application/json", File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "Fixtures\\DeliveryClient\\coffee.json"))); DeliveryClient client = InitializeDeliverClientWithACustomeTypeProvider(); var articleType = await client.GetTypeAsync("article"); var coffeeType = await client.GetTypeAsync("coffee"); var taxonomyElement = articleType.Elements["personas"]; var processingTaxonomyElement = coffeeType.Elements["processing"]; Assert.Equal("article", articleType.System.Codename); Assert.Equal("text", articleType.Elements["title"].Type); Assert.Equal("rich_text", articleType.Elements["body_copy"].Type); Assert.Equal("date_time", articleType.Elements["post_date"].Type); Assert.Equal("asset", articleType.Elements["teaser_image"].Type); Assert.Equal("modular_content", articleType.Elements["related_articles"].Type); Assert.Equal("taxonomy", articleType.Elements["personas"].Type); Assert.Equal("number", coffeeType.Elements["price"].Type); Assert.Equal("taxonomy", coffeeType.Elements["processing"].Type); Assert.Equal("personas", taxonomyElement.TaxonomyGroup); Assert.Equal("processing", processingTaxonomyElement.TaxonomyGroup); }
internal static DeliveryClient GetMockedDeliveryClientWithProjectId( Guid projectId, MockHttpMessageHandler httpMessageHandler = null, IModelProvider modelProvider = null, IRetryPolicyProvider resiliencePolicyProvider = null, ITypeProvider typeProvider = null) { if (modelProvider != null) { _mockModelProvider = modelProvider; } if (resiliencePolicyProvider != null) { _mockResiliencePolicyProvider = resiliencePolicyProvider; } if (typeProvider != null) { _mockTypeProvider = typeProvider; } var httpClient = httpMessageHandler != null?httpMessageHandler.ToHttpClient() : MockHttp.ToHttpClient(); var client = new DeliveryClient( DeliveryOptionsFactory.CreateMonitor(new DeliveryOptions { ProjectId = projectId.ToString() }), _mockModelProvider, _mockResiliencePolicyProvider, _mockTypeProvider, new DeliveryHttpClient(httpClient), _serializer ); return(client); }
public async void QueryParameters() { string url = $"{baseUrl}/items?elements.personas%5Ball%5D=barista%2Ccoffee%2Cblogger&elements.personas%5Bany%5D=barista%2Ccoffee%2Cblogger&system.sitemap_locations%5Bcontains%5D=cafes&elements.product_name=Hario%20V60&elements.price%5Bgt%5D=1000&elements.price%5Bgte%5D=50&system.type%5Bin%5D=cafe%2Ccoffee&elements.price%5Blt%5D=10&elements.price%5Blte%5D=4&elements.country%5Brange%5D=Guatemala%2CNicaragua&depth=2&elements=price%2Cproduct_name&limit=10&order=elements.price%5Bdesc%5D&skip=2&language=en"; mockHttp.When($"{url}"). Respond("application/json", " { 'items': [],'modular_content': {},'pagination': {'skip': 2,'limit': 10,'count': 0,'next_page': ''}}"); DeliveryClient client = InitializeDeliverClientWithACustomeTypeProvider(); var parameters = new IQueryParameter[] { new AllFilter("elements.personas", "barista", "coffee", "blogger"), new AnyFilter("elements.personas", "barista", "coffee", "blogger"), new ContainsFilter("system.sitemap_locations", "cafes"), new EqualsFilter("elements.product_name", "Hario V60"), new GreaterThanFilter("elements.price", "1000"), new GreaterThanOrEqualFilter("elements.price", "50"), new InFilter("system.type", "cafe", "coffee"), new LessThanFilter("elements.price", "10"), new LessThanOrEqualFilter("elements.price", "4"), new RangeFilter("elements.country", "Guatemala", "Nicaragua"), new DepthParameter(2), new ElementsParameter("price", "product_name"), new LimitParameter(10), new OrderParameter("elements.price", SortOrder.Descending), new SkipParameter(2), new LanguageParameter("en") }; var response = await client.GetItemsAsync(parameters); Assert.Equal(0, response.Items.Count); }
/// <summary> /// Returns a content type as JSON data. /// </summary> /// <param name="codename">The codename of a content type.</param> /// <returns>The <see cref="JObject"/> instance that represents the content type with the specified codename.</returns> public async Task <JObject> GetTypeJsonAsync(string codename) { return(await CacheManager.GetOrAddAsync( CacheHelper.GetTypeJsonKey(codename), () => DeliveryClient.GetTypeJsonAsync(codename), response => response != null)); }
public async void Retries_WithCustomResilencePolicyWithMaxRetrySet_PolicyUsedMaxRetryIgnored() { int policyRetryAttempts = 1; int expectedAttepts = policyRetryAttempts + 1; int ignoredRetryAttempt = 3; int actualHttpRequestCount = 0; _mockHttp.When($"{_baseUrl}/items") .Respond((request) => GetResponseAndLogRequest(HttpStatusCode.NotImplemented, ref actualHttpRequestCount)); var httpClient = _mockHttp.ToHttpClient(); var mockResilencePolicyProvider = A.Fake <IResiliencePolicyProvider>(); A.CallTo(() => mockResilencePolicyProvider.Policy) .Returns(Policy.HandleResult <HttpResponseMessage>(result => true).RetryAsync(policyRetryAttempts)); var deliveryOptions = new DeliveryOptions() { ProjectId = _guid, MaxRetryAttempts = ignoredRetryAttempt }; var client = new DeliveryClient(deliveryOptions) { HttpClient = httpClient, ResiliencePolicyProvider = mockResilencePolicyProvider }; await Assert.ThrowsAsync <DeliveryException>(async() => await client.GetItemsAsync()); A.CallTo(() => mockResilencePolicyProvider.Policy).MustHaveHappened(); Assert.Equal(expectedAttepts, actualHttpRequestCount); }
/// <summary> /// Returns a content element. /// </summary> /// <param name="contentTypeCodename">The codename of the content type.</param> /// <param name="contentElementCodename">The codename of the content element.</param> /// <returns>A content element with the specified codename that is a part of a content type with the specified codename.</returns> public async Task <DeliveryElementResponse> GetContentElementAsync(string contentTypeCodename, string contentElementCodename) { return(await CacheManager.GetOrAddAsync( CacheHelper.GetContentElementKey(contentTypeCodename, contentElementCodename), () => DeliveryClient.GetContentElementAsync(contentTypeCodename, contentElementCodename), response => response != null)); }
// get cart products for specific ID // response will be object with simple data of default item id // CartResponseModel --> item detail data //public async Task<OperationResponse<List<OrderReponseModel>>> GetHistoryOrders(decimal delivertClientID) //{ //public async Task<OperationResponse<List<CartProducts>>> getAllCartProductsByUserID(decimal userID) //{ // OperationResponse<List<CartProducts>> or = new OperationResponse<List<CartProducts>>(); // try // { // var cartItems = await _dbContext.CartProducts.Where(i => i.FkDeliveryClientId == userID).Include(m=>m.item).ToListAsync(); // if (cartItems.Count>0) // { // //abdelrhman mohamed start 15-1-2021 // or.Data = cartItems; // or.StatusCode = "200"; // or.Message = "Success"; // //abdelrhman mohamed end 15-1-2021 // } // else // { // or.HasErrors = true; // or.Message = "Please Enter Another user"; // } // } // catch (Exception ex) // { // or.HasErrors = true; // or.Message = ex.Message; // } // return or; //} public async Task <OperationResponse <cartItemsWithFees> > getAllCartProductsByUserID(decimal userID) { OperationResponse <cartItemsWithFees> or = new OperationResponse <cartItemsWithFees>(); try { // parameters --> category id to filter with, all items count to skip , all items that will return cartItemsWithFees res = new cartItemsWithFees(); var allItmesFav = await _dbContext.OrderProducts.FromSql($"getCartItemsByUserID {userID}").ToListAsync(); DeliveryClient clientObj = _dbContext.DeliveryClient.Where(a => a.DelClientId == userID).FirstOrDefault(); if (allItmesFav != null) { res.cartProducts = allItmesFav; res.fees = _dbContext.Area.Where(a => a.AreaId == clientObj.FkAreaId).FirstOrDefault().DeliveryAmount; } or.StatusCode = "200"; or.HasErrors = false; or.Data = res; // old data //var result = await _dbContext.Items.Where(i => i.FkCategoryId == catID).ToListAsync(); //if (result != null) // or.Data = result; } catch (Exception ex) { or.HasErrors = true; or.Message = ex.Message; } return(or); }
/// <summary> /// Returns a content item as JSON data. /// </summary> /// <param name="codename">The codename of a content item.</param> /// <param name="parameters">An array that contains zero or more query parameters, for example for projection or depth of linked items.</param> /// <returns>The <see cref="JObject"/> instance that represents the content item with the specified codename.</returns> public async Task <JObject> GetItemJsonAsync(string codename, params string[] parameters) { return(await CacheManager.GetOrAddAsync( CacheHelper.GetItemJsonKey(codename, parameters), () => DeliveryClient.GetItemJsonAsync(codename, parameters), response => response != null)); }
private void btnAddPartner_Click(object sender, EventArgs e) { Partner partner = new Partner(); partner.id = int.Parse(tBox_addPartner_id.Text); partner.name = tBox_AddPartner_name.Text; partner.adress = tBox_AddPartner_adress.Text; partner.headquarters = tBox_AddPartner_headquarters.Text; partner.phoneNumber = tBox_AddPartner_phoneNum.Text; partner.identificationNumber = tBox_AddPartner_IdentificationNum.Text; partner.director = tBox_addPartner_director.Text; partner.type = (Enums.PartnerType)cmb_addPartner_type.SelectedItem; //Add it do products list DeliveryHolder.partners.Add(partner); try { DeliveryClient.InsertPartner(partner); } catch (Exception) { MessageBox.Show("Failed to insert partner to database"); } clearTab(tabPagePartner); tBox_addPartner_id.Text = (DeliveryHolder.partners.Count == 0 ? 0 : (from elem in DeliveryHolder.partners select elem.id).Max() + 1).ToString(); }
/// <summary> /// Returns a taxonomy group. /// </summary> /// <param name="codename">The codename of a taxonomy group.</param> /// <returns>The taxonomy group with the specified codename.</returns> public async Task <DeliveryTaxonomyResponse> GetTaxonomyAsync(string codename) { return(await CacheManager.GetOrAddAsync( CacheHelper.GetTaxonomyKey(codename), () => DeliveryClient.GetTaxonomyAsync(codename), response => response != null)); }
private void btnAddLocation_Click(object sender, EventArgs e) { Location location = new Location(); location.id = int.Parse(tbox_addLocation_id.Text); location.name = tbox_addLocation_name.Text; location.zipCode = tbox_addLocation_zipCode.Text; location.adress = tbox_addLocation_adress.Text; try { DeliveryHolder.locations.Add(location); DeliveryClient.InsertLocation(location); clearTab(tabPageLocation); tbox_addLocation_id.Text = DeliveryHolder.locations.Count == 0 ? "1" : (DeliveryHolder.locations.Count + 1).ToString(); setupRouteCmb(); } catch (Exception) { MessageBox.Show("Failed to add location"); } }
/// <summary> /// Returns content items as JSON data. /// </summary> /// <param name="parameters">An array that contains zero or more query parameters, for example for filtering, ordering or depth of linked items.</param> /// <returns>The <see cref="JObject"/> instance that represents the content items. If no query parameters are specified, all content items are returned.</returns> public async Task <JObject> GetItemsJsonAsync(params string[] parameters) { return(await CacheManager.GetOrAddAsync( CacheHelper.GetItemsJsonKey(parameters), () => DeliveryClient.GetItemsJsonAsync(parameters), response => response["items"].Any())); }
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 httpClient = mockHttp.ToHttpClient(); var deliveryOptions = new OptionsWrapper <DeliveryOptions>(new DeliveryOptions { ProjectId = guid }); var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>(); var contentItemsProcessor = A.Fake <IInlineContentItemsProcessor>(); var contentPropertyMapper = new PropertyMapper(); var contentTypeProvider = new CustomTypeProvider(); var modelProvider = new ModelProvider(contentLinkUrlResolver, contentItemsProcessor, contentTypeProvider, contentPropertyMapper); var resiliencePolicyProvider = A.Fake <IResiliencePolicyProvider>(); A.CallTo(() => resiliencePolicyProvider.Policy) .Returns(Policy.HandleResult <HttpResponseMessage>(result => true).RetryAsync(deliveryOptions.Value.MaxRetryAttempts)); var client = new DeliveryClient( deliveryOptions, httpClient, contentLinkUrlResolver, null, modelProvider, resiliencePolicyProvider, contentTypeProvider ); return(client); }
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 ValueConverterTests() { client = new DeliveryClient(DeliveryClientTests.PROJECT_ID) { CodeFirstModelProvider = { TypeProvider = new CustomTypeProvider() } }; }