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 GetContactsShouldReturnContactsUsingOAuth() { var accessToken = TestHelper.SignInAndGetAccessToken(); var proxy = new ContactsProxy(accessToken); AssertContactProxy(proxy); }
public void GetContactsShouldReturnContactsUsingWsAccessKey() { var proxy = new ContactsProxy(); AssertContactProxy(proxy); }
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.IsTrue(response.IsSuccessfull); Assert.IsTrue(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.IsNotNull(contactResponse, "No response returned wwhen access contacts resource"); Assert.IsFalse(contactResponse.IsSuccessfull, "Expected GET Contacts to fail as used an invalid File Id"); Assert.AreEqual(contactResponse.StatusCode, HttpStatusCode.Unauthorized, "Expected Unauthorized status code as used an invalid FileId"); }
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> /// 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; }
/// <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; }
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 GetContactsFilterActiveContractor() { var proxy = new ContactsProxy(); AssertContactProxy(proxy, isActive: true, isContractor: true); }
public void GetContactsFilterActiveSupplier() { var proxy = new ContactsProxy(); AssertContactProxy(proxy, isActive: true, isSupplier: true); }
public void GetContactsAll() { var proxy = new ContactsProxy(); var response = AssertContactProxy(proxy); }
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; }
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" }; Ola.RestClient.Proxies.CrudProxy proxy = new Ola.RestClient.Proxies.ContactProxy(); proxy.Insert(dto); } else { _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); } else { _ShippingContactId = response.DataObject.Contacts[0].Id.Value; } }
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 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)); }
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; }
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."); }
/// <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; }
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"); }
/// <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 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.IsTrue(response.IsSuccessfull); Assert.IsTrue(response.DataObject.IsSuccessfull); var contactProxy = new ContactsProxy(response.DataObject.AccessGrant.refresh_token); var contactResponse = contactProxy.GetContacts(); Assert.IsNotNull(contactResponse, "No response returned wwhen access contacts resource"); Assert.IsFalse(contactResponse.IsSuccessfull, "Expected GET Contacts to fail used refreshToken instead of access token to access API"); Assert.AreEqual(contactResponse.StatusCode, HttpStatusCode.Unauthorized, "Expected Unauthorised Status code as used an invalid access token"); // And now just reverify that we can access via the access token contactProxy.BearerToken = response.DataObject.AccessGrant.access_token; contactResponse = contactProxy.GetContacts(); Assert.IsNotNull(contactResponse, "No response returned wwhen access contacts resource"); Assert.IsTrue(contactResponse.IsSuccessfull, "Expected GET Contacts to succeed since we used valid accessToken to access API"); }