Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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.");
        }
Esempio n. 4
0
        public void GetContactsOnePageOneRecord()
        {
            var proxy = new ContactsProxy();

            var response = AssertContactProxy(proxy, pageNumber: 1, pageSize: 1);

            Assert.Equal(1, response.DataObject.Contacts.Count);
        }
Esempio n. 5
0
        public void GetContactsShouldReturnContactsUsingOAuth()
        {
            var accessToken = TestHelper.SignInAndGetAccessToken();

            var proxy = new ContactsProxy(accessToken);

            AssertContactProxy(proxy);
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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.");
        }
Esempio n. 8
0
        public void GetContactsFilterOnEmail()
        {
            var proxy = new ContactsProxy();

            var response = AssertContactProxy(proxy, email: "*****@*****.**");

            Assert.IsTrue(response.DataObject.Contacts.Count >= 1, "Incorrect number of contacts found.");
        }
Esempio n. 9
0
        public void ShouldBeAbleToReturnApiResultsAsXml()
        {
            var accessToken = TestHelper.SignInAndGetAccessToken();

            var proxy = new ContactsProxy(accessToken);

            proxy.ContentType = RequestContentType.ApplicationXml;
            ContactTests.AssertContactProxy(proxy);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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"));
        }
Esempio n. 12
0
        /// <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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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;
            }
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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;
        }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
        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");
        }
Esempio n. 20
0
        /// <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);
        }
Esempio n. 21
0
        /// <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);
        }
Esempio n. 22
0
        public void GetContactsFilterActivePartner()
        {
            var proxy = new ContactsProxy();

            AssertContactProxy(proxy, isActive: true, isPartner: true);
        }
Esempio n. 23
0
        public void GetContactsFilterActiveContractor()
        {
            var proxy = new ContactsProxy();

            AssertContactProxy(proxy, isActive: true, isContractor: true);
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        /// <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);
        }
Esempio n. 26
0
        /// <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);
        }
Esempio n. 27
0
        /// <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);
        }
Esempio n. 28
0
        public void GetContactsShouldReturnContactsUsingWsAccessKey()
        {
            var proxy = new ContactsProxy();

            AssertContactProxy(proxy);
        }
Esempio n. 29
0
        public void GetContactsAll()
        {
            var proxy = new ContactsProxy();

            var response = AssertContactProxy(proxy);
        }