public int GetOrCreateContact(string firstName, string lastName, string email) { var proxy = new ContactProxy(); var searchProxy = new ContactsProxy(); var companyProxy = new CompanyProxy(); var response = searchProxy.GetContacts(givenName: firstName, familyName: lastName); if (response.IsSuccessfull && response.DataObject.Contacts.Any()) { return(response.DataObject.Contacts[0].Id.GetValueOrDefault()); } var contact = new Contact() { GivenName = firstName, FamilyName = lastName, EmailAddress = email, }; var result = proxy.InsertContact(contact); Assert.True(result.IsSuccessfull, "Failed to add customer contact test data."); return(result.DataObject.InsertedContactId); }
public void GetContactsFilterOnModifiedDates() { var proxy = new ContactsProxy(); //use a year ago and tomorrow as date filters to make sure the test contact Carl O'Brien is picked up. AssertContactProxy(proxy, lastModifiedFromDate: DateTime.Now.AddYears(-1), lastModifiedToDate: DateTime.Now.AddDays(1)); }
public void GetContactsFilterOnPersonNameAndOrganisationName() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, givenName: "Carl", familyName: "O'Neil", organisationName: "O'Neil Capital"); Assert.IsTrue(response.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); }
public void GetContactsOnePageOneRecord() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, pageNumber: 1, pageSize: 1); Assert.Equal(1, response.DataObject.Contacts.Count); }
public void GetContactsShouldReturnContactsUsingOAuth() { var accessToken = TestHelper.SignInAndGetAccessToken(); var proxy = new ContactsProxy(accessToken); AssertContactProxy(proxy); }
public void GetContactsOnePageOneRecord() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, pageNumber: 1, pageSize: 1); Assert.AreEqual(1, response.DataObject.Contacts.Count, "Paging of 1 page and 1 record is returning the wrong number of records"); }
public void GetContactsFilterOnContactId() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, contactId: "GLD879"); Assert.IsTrue(response.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); }
public void GetContactsFilterOnEmail() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, email: "*****@*****.**"); Assert.IsTrue(response.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); }
public void ShouldBeAbleToReturnApiResultsAsXml() { var accessToken = TestHelper.SignInAndGetAccessToken(); var proxy = new ContactsProxy(accessToken); proxy.ContentType = RequestContentType.ApplicationXml; ContactTests.AssertContactProxy(proxy); }
public void ModifyingContactsIsBooleanFieldsShouldNotAffectOtherIsBooleanFields() { var contactsProxy = new ContactsProxy(); //Find Test contact to obtain their Id. var contactsResponse = AssertContactProxy(contactsProxy, givenName: "carl", familyName: "o'neil", contactId: "GLD879"); Assert.IsTrue(contactsResponse.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); var proxy = new ContactProxy(); var testId = contactsResponse.DataObject.Contacts[0].Id; var response = proxy.GetContact(testId.Value); Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessfull); Assert.IsNotNull(response.DataObject); // Now Modify the IsCustomer, IsContractor, IsSupplier, Is... fields and ensure setting one does not clear the other var testContact = response.DataObject; testContact.IsContractor = true; testContact.IsCustomer = true; testContact.IsPartner = true; testContact.IsSupplier = true; var updateResponse = proxy.UpdateContact(testContact, testContact.Id.Value); Assert.IsNotNull(updateResponse); Assert.IsTrue(updateResponse.IsSuccessfull); var updatedResponse1 = proxy.GetContact(testContact.Id.Value); Assert.IsTrue(updatedResponse1.IsSuccessfull); Assert.AreEqual(testContact.IsContractor, updatedResponse1.DataObject.IsContractor); Assert.AreEqual(testContact.IsCustomer, updatedResponse1.DataObject.IsCustomer); Assert.AreEqual(testContact.IsPartner, updatedResponse1.DataObject.IsPartner); Assert.AreEqual(testContact.IsSupplier, updatedResponse1.DataObject.IsSupplier); testContact.LastUpdatedId = updateResponse.DataObject.LastUpdatedId; testContact.IsSupplier = false; testContact.IsPartner = false; var updateResponse2 = proxy.UpdateContact(testContact, testContact.Id.Value); Assert.IsNotNull(updateResponse2); Assert.IsTrue(updateResponse2.IsSuccessfull); var updatedResponse2 = proxy.GetContact(testContact.Id.Value); Assert.IsTrue(updatedResponse2.IsSuccessfull); Assert.AreEqual(testContact.IsContractor, updatedResponse2.DataObject.IsContractor); Assert.AreEqual(testContact.IsCustomer, updatedResponse2.DataObject.IsCustomer); Assert.AreEqual(testContact.IsPartner, updatedResponse2.DataObject.IsPartner); Assert.AreEqual(testContact.IsSupplier, updatedResponse2.DataObject.IsSupplier); }
public void GetContactsSecondPage() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy, pageNumber: 1, pageSize: 2); var idsFromPage1 = response.DataObject.Contacts.Select(c => c.Id).ToList(); response = AssertContactProxy(proxy, pageNumber: 2, pageSize: 2); response.DataObject.Contacts.ForEach(c => Assert.IsFalse(idsFromPage1.Contains(c.Id), "Record(s) from page 1 were returned")); }
/// <summary> /// Add fictious customer contact. Currently have to use old Rest client API to insert record as this functionality not available in Web API yet. /// </summary> public int GetOrCreateContactCustomer() { var proxy = new ContactProxy(); var searchProxy = new ContactsProxy(); var companyProxy = new CompanyProxy(); var response = searchProxy.GetContacts(givenName: "carl", familyName: "o'neil", isCustomer: true, organisationName: "o'neil capital"); if (response.IsSuccessfull && response.DataObject.Contacts.Any()) { return(response.DataObject.Contacts[0].Id.GetValueOrDefault()); } var cResult = companyProxy.InsertCompany(new CompanyDetail() { Name = "O'Neil Capital" }); Assert.True(cResult.IsSuccessfull, "Failed to create organization for customer contact test data."); var contact = new Contact() { Salutation = "Mr.", GivenName = "Carl", FamilyName = "O'Neil", ContactId = "GLD879", CustomField1 = "O'NeilC", IsCustomer = true, Tags = new List <string>() { "carlTag1", "carlTag2" }, EmailAddress = "*****@*****.**", CompanyId = cResult.DataObject.InsertedCompanyId }; var result = proxy.InsertContact(contact); Assert.True(result.IsSuccessfull, "Failed to add customer contact test data."); return(result.DataObject.InsertedContactId); }
public static ProxyResponse <ContactResponse> AssertContactProxy(ContactsProxy proxy, int?pageNumber = null, int?pageSize = null, DateTime?lastModifiedFromDate = null, DateTime?lastModifiedToDate = null, string givenName = null, string familyName = null, string organisationName = null, bool?isActive = null, bool?isCustomer = null, bool?isSupplier = null, bool?isContractor = null, bool?isPartner = null, string tags = null, string tagSelection = null, string email = null, string contactId = null) { var response = proxy.GetContacts(pageNumber, pageSize, lastModifiedFromDate, lastModifiedToDate, givenName, familyName, organisationName, isActive, isCustomer, isSupplier, isContractor, isPartner, tags, tagSelection, email, contactId); Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessfull); Assert.IsNotNull(response.DataObject); Assert.IsNotNull(response.DataObject.Contacts); Assert.IsNotNull(response.DataObject._links); Assert.IsTrue(response.DataObject._links.Count > 0); Assert.IsTrue(response.DataObject.Contacts.Count > 0); return(response); }
public int GetOrCreateContactCustomer(string firstName, string lastName, string organisationName, string email) { var proxy = new ContactProxy(); var searchProxy = new ContactsProxy(); var companyProxy = new CompanyProxy(); var response = searchProxy.GetContacts(givenName: firstName, familyName: lastName, isCustomer: true, organisationName: organisationName); if (response.IsSuccessfull && response.DataObject.Contacts.Any()) { return(response.DataObject.Contacts[0].Id.GetValueOrDefault()); } var cResult = companyProxy.InsertCompany(new CompanyDetail() { Name = organisationName }); Assert.True(cResult.IsSuccessfull, "Failed to create organization for customer contact test data."); var contact = new Contact() { GivenName = firstName, FamilyName = lastName, //ContactId = "GLD879", IsCustomer = true, Tags = new List <string>() { $"{firstName}Tag1", $"{lastName}Tag2" }, EmailAddress = email, CompanyId = cResult.DataObject.InsertedCompanyId }; var result = proxy.InsertContact(contact); Assert.True(result.IsSuccessfull, "Failed to add customer contact test data."); return(result.DataObject.InsertedContactId); }
private void GetTestContacts() { var contactsProxy = new ContactsProxy(); var contactProxy = new ContactProxy(); var response = contactsProxy.GetContacts(givenName: "Test1", familyName: "APIJournal"); if (response.DataObject == null || response.DataObject.Contacts == null || response.DataObject.Contacts.Count == 0) { var contact = new Contact { GivenName = "Test1", FamilyName = "APIJournal" }; var insertResult = contactProxy.InsertContact(contact); _contactId1 = insertResult.DataObject.InsertedContactId; } else { _contactId1 = response.DataObject.Contacts[0].Id.Value; } response = contactsProxy.GetContacts(givenName: "Test2", familyName: "APIJournal"); if (response.DataObject == null || response.DataObject.Contacts == null || response.DataObject.Contacts.Count == 0) { var contact = new Contact { GivenName = "Test2", FamilyName = "APIJournal" }; var insertResult = contactProxy.InsertContact(contact); _contactId2 = insertResult.DataObject.InsertedContactId; } else { _contactId2 = response.DataObject.Contacts[0].Id.Value; } }
public void ValidBearerTokenButNoFileIdShouldFailWhenMakingApiCall() { var proxy = new AuthorisationProxy(); var scope = new AuthorisationScope[] { new AuthorisationScope { ScopeType = AuthorisationScopeType.Full } }.ToTextValues(); var response = proxy.PasswordCredentialsGrantRequest(TestConfig.TestUser, TestConfig.TestUserPassword, scope); Assert.True(response.IsSuccessfull); Assert.True(response.DataObject.IsSuccessfull); proxy.BearerToken = response.DataObject.AccessGrant.access_token; var contactProxy = new ContactsProxy(response.DataObject.AccessGrant.access_token); contactProxy.FileId = 0; // invalid file id so it should fail. var contactResponse = contactProxy.GetContacts(); Assert.NotNull(contactResponse); Assert.False(contactResponse.IsSuccessfull, "Expected GET Contacts to fail as used an invalid File Id"); Assert.Equal(HttpStatusCode.Unauthorized, contactResponse.StatusCode); }
private void CreateTestContacts() { //Billing contact. var response = new ContactsProxy().GetContacts(givenName: "TestAPIInvoice", familyName: "BillingContact"); if (response.DataObject.Contacts.Count == 0) { var dto = new Ola.RestClient.Dto.ContactDto { GivenName = "TestAPIInvoice", FamilyName = "BillingContact", Email = "*****@*****.**" }; Ola.RestClient.Proxies.CrudProxy proxy = new Ola.RestClient.Proxies.ContactProxy(); proxy.Insert(dto); } response = new ContactsProxy().GetContacts(givenName: "TestAPIInvoice", familyName: "BillingContact"); _BillingContactId = response.DataObject.Contacts[0].Id.Value; //Shipping contact. response = new ContactsProxy().GetContacts(givenName: "TestAPIInvoice", familyName: "ShippingContact"); if (response.DataObject.Contacts.Count == 0) { var dto = new Ola.RestClient.Dto.ContactDto { GivenName = "TestAPIInvoice", FamilyName = "ShippingContact" }; Ola.RestClient.Proxies.CrudProxy proxy = new Ola.RestClient.Proxies.ContactProxy(); proxy.Insert(dto); } response = new ContactsProxy().GetContacts(givenName: "TestAPIInvoice", familyName: "ShippingContact"); _ShippingContactId = response.DataObject.Contacts[0].Id.Value; }
public void GetSingleContactWithContactId() { var contactsProxy = new ContactsProxy(); //Find Test contact to obtain their Id. var contactsResponse = AssertContactProxy(contactsProxy, givenName: "carl", familyName: "o'neil", contactId: "GLD879"); Assert.IsTrue(contactsResponse.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); var proxy = new ContactProxy(); var id = contactsResponse.DataObject.Contacts[0].Id; Assert.IsNotNull(id); var response = proxy.GetContact(id.Value); Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessfull); Assert.IsNotNull(response.DataObject); Assert.IsNotNull(response.DataObject._links); Assert.IsTrue(response.DataObject._links.Count > 0); Assert.IsTrue(response.DataObject.Id == id); }
public void ShouldNotBeAbleToUseRefreshTokenToAccessApi() { var proxy = new AuthorisationProxy(); var scope = new AuthorisationScope[] { new AuthorisationScope { ScopeType = AuthorisationScopeType.Full } }.ToTextValues(); var response = proxy.PasswordCredentialsGrantRequest(TestConfig.TestUser, TestConfig.TestUserPassword, scope); Assert.True(response.IsSuccessfull); Assert.True(response.DataObject.IsSuccessfull); var contactProxy = new ContactsProxy(response.DataObject.AccessGrant.refresh_token); var contactResponse = contactProxy.GetContacts(); Assert.NotNull(contactResponse); Assert.False(contactResponse.IsSuccessfull, "Expected GET Contacts to fail used refreshToken instead of access token to access API"); Assert.Equal(HttpStatusCode.Unauthorized, contactResponse.StatusCode); // And now just reverify that we can access via the access token contactProxy.BearerToken = response.DataObject.AccessGrant.access_token; contactResponse = contactProxy.GetContacts(); Assert.NotNull(contactResponse); Assert.True(contactResponse.IsSuccessfull, "Expected GET Contacts to succeed since we used valid accessToken to access API"); }
/// <summary> /// Add fictious contractor contact. Currently have to use old Rest client API to insert record as this functionality not available in Web API yet. /// </summary> public int GetOrCreateContractorContact() { var proxy = new ContactProxy(); var searchProxy = new ContactsProxy(); var companyProxy = new CompanyProxy(); var response = searchProxy.GetContacts(givenName: "kathy", familyName: "o'neil", isCustomer: true, organisationName: "O'Neil Contractor"); if (response.IsSuccessfull && response.DataObject.Contacts.Any()) { return(response.DataObject.Contacts[0].Id.GetValueOrDefault()); } var cResult = companyProxy.InsertCompany(new CompanyDetail() { Name = "O'Neil Contractor" }); Assert.True(cResult.IsSuccessfull, "Failed to create organization for supplier contact test data."); var contact = new Contact() { Salutation = "Ms.", GivenName = "Kathy", FamilyName = "O'Neil", ContactId = "GLD882", CustomField1 = "O'NeilK", CompanyId = cResult.DataObject.InsertedCompanyId, IsContractor = true }; var result = proxy.InsertContact(contact); Assert.True(result.IsSuccessfull, "Failed to add contractor contact test data."); return(result.DataObject.InsertedContactId); }
/// <summary> /// Search for fictious partner contact. /// </summary> private static ProxyResponse <ContactResponse> SearchBrad(ContactsProxy proxy) { var response = proxy.GetContacts(givenName: "brad", familyName: "o'neil", organisationName: "o'neil partner"); return(response); }
public void GetContactsFilterActivePartner() { var proxy = new ContactsProxy(); AssertContactProxy(proxy, isActive: true, isPartner: true); }
public void GetContactsFilterActiveContractor() { var proxy = new ContactsProxy(); AssertContactProxy(proxy, isActive: true, isContractor: true); }
internal static ProxyResponse <ContactResponse> VerifyTestContactExistsOrCreate(ContactType contactType) { var proxy = new ContactsProxy(); ProxyResponse <ContactResponse> response = null; switch (contactType) { case Ola.RestClient.ContactType.Customer: { response = SearchCarl(proxy); if (response.DataObject.Contacts.Count == 0) { AddCarlCustomer(proxy.WsAccessKey, proxy.FileId); response = SearchCarl(proxy); } break; } case Ola.RestClient.ContactType.Supplier: { response = SearchJenny(proxy); if (response.DataObject.Contacts.Count == 0) { AddJennySupplier(proxy.WsAccessKey, proxy.FileId); response = SearchJenny(proxy); } break; } case Ola.RestClient.ContactType.Partner: { response = SearchBrad(proxy); if (response.DataObject.Contacts.Count == 0) { AddBradPartner(proxy.WsAccessKey, proxy.FileId); response = SearchBrad(proxy); } break; } case Ola.RestClient.ContactType.Contractor: { response = SearchKathy(proxy); if (response.DataObject.Contacts.Count == 0) { AddKathyContractor(proxy.WsAccessKey, proxy.FileId); response = SearchKathy(proxy); } break; } } if (response != null) { Assert.IsTrue(response.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found."); } else { Assert.Fail("No contact type specified to be created."); } return(response); }
/// <summary> /// Search for fictious customer contact. /// </summary> private static ProxyResponse <ContactResponse> SearchCarl(ContactsProxy proxy) { var response = proxy.GetContacts(givenName: "carl", familyName: "o'neil", organisationName: "o'neil capital"); return(response); }
/// <summary> /// Search for fictious supplier contact. /// </summary> private static ProxyResponse <ContactResponse> SearchJenny(ContactsProxy proxy) { var response = proxy.GetContacts(givenName: "jenny", familyName: "o'neil", organisationName: "o'neil supplier"); return(response); }
/// <summary> /// Search for fictious contractor contact. /// </summary> private static ProxyResponse <ContactResponse> SearchKathy(ContactsProxy proxy) { var response = proxy.GetContacts(givenName: "kathy", familyName: "o'neil", organisationName: "o'neil contractor", isContractor: true); return(response); }
public void GetContactsShouldReturnContactsUsingWsAccessKey() { var proxy = new ContactsProxy(); AssertContactProxy(proxy); }
public void GetContactsAll() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy); }