public T Execute <T>(string absoluteUriPath, object entity = null, Method method = Method.GET, bool convertToPropertiesSchema = true) where T : IHubSpotModel, new() { var json = _serializer.SerializeEntity(entity, convertToPropertiesSchema); var data = SendRequest(absoluteUriPath, method, json, responseData => (T)_serializer.DeserializeEntity <T>(responseData, convertToPropertiesSchema)); return(data); }
/// <summary> /// Internal method to allow support for PUT and POST /// </summary> /// <typeparam name="T"></typeparam> /// <param name="absoluteUriPath"></param> /// <param name="entity"></param> /// <param name="usePost"></param> /// <returns></returns> private async Task <T> PutOrPost <T>(string absoluteUriPath, IHubSpotEntity entity, bool usePost) where T : IHubSpotEntity, new() { var json = _serializer.SerializeEntity(entity); var data = await SendRequestAsync <T>( absoluteUriPath, usePost?HttpMethod.Post : HttpMethod.Put, json, responseData => (T)_serializer.DeserializeEntity <T>(responseData)); return(data); }
public HubSpotLineItemClientTest(ITestOutputHelper output) : base(output) { _mockHttpClient = A.Fake <IRapidHttpClient>(opts => opts.Strict()); A.CallTo(() => _mockHttpClient.SendAsync(A <HttpRequestMessage> .Ignored)) .Returns(Task.FromResult(CreateNewEmptyOkResponse())); _mockSerializer = A.Fake <RequestSerializer>(opts => opts.Strict()); A.CallTo(() => _mockSerializer.SerializeEntity(A <LineItemHubSpotEntity> .Ignored)) .Returns("{}"); A.CallTo(() => _mockSerializer.SerializeEntityToNameValueList <ILineItemHubSpotEntity>(A <LineItemHubSpotEntity> .Ignored)) .Returns("[]"); A.CallTo(() => _mockSerializer.DeserializeEntity <LineItemHubSpotEntity>(A <string> .Ignored)) .Returns(new LineItemHubSpotEntity()); _client = new HubSpotLineItemClient( _mockHttpClient, Logger, _mockSerializer, "https://api.hubapi.com", "HapiKeyFisk" ); }
public async Task CompanyClient_create_contact_work() { var response = await _client.CreateAsync <CompanyHubSpotEntity>(new CompanyHubSpotEntity { Name = "A new Company", Description = "A new description" }); A.CallTo(() => _mockHttpClient.SendAsync(A <HttpRequestMessage> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.SerializeEntity(A <IHubSpotEntity> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.DeserializeEntity <CompanyHubSpotEntity>("{}")).MustHaveHappened(); }
public async Task ContactClient_create_contact_work() { var response = await _client.CreateAsync <ContactHubSpotEntity>(new ContactHubSpotEntity { FirstName = "Adrian", Lastname = "Baws", Email = "*****@*****.**" }); A.CallTo(() => _mockHttpClient.SendAsync(A <HttpRequestMessage> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.SerializeEntity(A <IHubSpotEntity> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.DeserializeEntity <ContactHubSpotEntity>("{}")).MustHaveHappened(); }
public async Task LineItemClient_create_lineitem_works() { var response = await _client.CreateAsync <LineItemHubSpotEntity>(new LineItemHubSpotEntity { Name = "A new deal", Price = 12.50M, ProductId = "12345", Quantity = 10, }); A.CallTo(() => _mockHttpClient.SendAsync(A <HttpRequestMessage> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.SerializeEntityToNameValueList <ILineItemHubSpotEntity>(A <LineItemHubSpotEntity> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.DeserializeEntity <LineItemHubSpotEntity>("{}")).MustHaveHappened(); }
public async Task DealClient_create_contact_work() { var response = await _client.CreateAsync <DealHubSpotEntity>(new DealHubSpotEntity { Name = "A new deal", Pipeline = "default", Amount = 60000, DealType = "newbusiness" }); A.CallTo(() => _mockHttpClient.SendAsync(A <HttpRequestMessage> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.SerializeEntity(A <IHubSpotEntity> .Ignored)).MustHaveHappened(); A.CallTo(() => _mockSerializer.DeserializeEntity <DealHubSpotEntity>("{}")).MustHaveHappened(); }