Ejemplo n.º 1
0
        public void ShouldNotUpdateContactManagerWhenContactLastUpdatedIdIncorrect()
        {
            var contactProxy           = new ContactProxy();
            var contactAggregateProxy  = new ContactAggregateProxy();
            var contactAggregate       = GetNewContactAggregate();
            var contactManager         = GetContact();
            var contactManagerResponse = contactProxy.InsertContact(contactManager);

            var contact         = GetContact();
            var contactResponse = contactProxy.InsertContact(contact);

            contactAggregate.Id                    = contactResponse.DataObject.InsertedContactId;
            contactAggregate.LastUpdatedId         = contactResponse.DataObject.LastUpdatedId.ToLower();
            contactAggregate.ContactManager.Id     = contactManagerResponse.DataObject.InsertedContactId;
            contactAggregate.Company.LastUpdatedId = contactManagerResponse.DataObject.LastUpdatedId;

            var aggregateResponse = contactAggregateProxy.UpdateContactAggregate(contactAggregate, contactResponse.DataObject.InsertedContactId);

            Assert.IsFalse(aggregateResponse.IsSuccessfull);
            Assert.AreEqual(HttpStatusCode.BadRequest, aggregateResponse.StatusCode);
            Assert.AreEqual("\"Record to be updated has changed since last read.\"", aggregateResponse.RawResponse);

            var updatedContact = contactProxy.GetContact(contactManagerResponse.DataObject.InsertedContactId);

            Assert.AreEqual(contactManagerResponse.DataObject.LastUpdatedId, updatedContact.DataObject.LastUpdatedId);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        public void ShouldUpdateContactAndAddNewCompanyAndContactManager()
        {
            var contactProxy          = new ContactProxy();
            var contactAggregateProxy = new ContactAggregateProxy();
            var contact         = GetContact();
            var contactResponse = contactProxy.InsertContact(contact);

            Assert.IsTrue(contactResponse.IsSuccessfull);

            var contactAggregate = GetNewContactAggregate();

            var contactAggregateResponse = contactAggregateProxy.UpdateContactAggregate(contactAggregate, contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(contactAggregateResponse.IsSuccessfull, "Failed to update existing contact and add new company and contact manager");
            Assert.IsNotNull(contactAggregateResponse.DataObject);
            Assert.AreEqual(contactResponse.DataObject.InsertedContactId, contactAggregateResponse.DataObject.UpdatedContactId);
            Assert.IsTrue(contactAggregateResponse.DataObject.CompanyId > 0, "Invalid CompanyId returned from UpdateContactAggregate when inserting new company");
            Assert.IsTrue(contactAggregateResponse.DataObject.CompanyLastUpdatedId.Length > 0, "Invalid CompanyLastUpdatedId returned from UpdateContactAggregate when inserting new company");
            Assert.IsTrue(contactAggregateResponse.DataObject.ContactManagerId > 0, "Invalid ContactManagerId returned from UpdateContactAggregate when inserting new contact manager");
            Assert.IsTrue(contactAggregateResponse.DataObject.ContactManagerLastUpdatedId.Length > 0, "Invalid ContactManagerLastUpdatedId returned from UpdateContactAggregate when inserting new contact manager");

            var updatedContact = contactProxy.GetContact(contactResponse.DataObject.InsertedContactId);

            AssertUpdatedContact(contactAggregate, updatedContact);

            var insertedAggregate =
                contactAggregateProxy.GetContactAggregate(contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(insertedAggregate.IsSuccessfull);
            Assert.IsNotNull(insertedAggregate.DataObject);
            Assert.IsNotNull(insertedAggregate.DataObject.Company, "New company not associated with existing contact");
            Assert.IsNotNull(insertedAggregate.DataObject.ContactManager, "New contact manager not associated with existing contact");
            Assert.AreEqual(contactAggregate.Company.Name, insertedAggregate.DataObject.Company.Name);
            Assert.AreEqual(contactAggregate.ContactManager.GivenName, insertedAggregate.DataObject.ContactManager.GivenName);
        }
Ejemplo n.º 4
0
        public void UpdateCompleteContact()
        {
            var contact = GetMinimalContact();

            var proxy          = new ContactProxy();
            var insertResponse = proxy.InsertContact(contact);

            Assert.IsTrue(insertResponse.IsSuccessfull);
            Assert.IsTrue(insertResponse.DataObject.InsertedContactId > 0);

            var insertedContact = proxy.GetContact(insertResponse.DataObject.InsertedContactId);

            insertedContact.DataObject.GivenName          = "Jack";
            insertedContact.DataObject.PostalAddress.City = "Potts Point";

            var tags = new List <string>();

            tags.Add("Banana");
            tags.Add("Pear");
            insertedContact.DataObject.Tags = tags;

            var updateResponse = proxy.UpdateContact(insertedContact.DataObject, insertResponse.DataObject.InsertedContactId);

            Assert.IsTrue(updateResponse.IsSuccessfull);
            //System.Threading.Thread.Sleep(1000);
            var updatedContact = proxy.GetContact(updateResponse.DataObject.UpdatedContactId);

            Assert.AreEqual(insertedContact.DataObject.GivenName, updatedContact.DataObject.GivenName);
            Assert.IsNotNull(updatedContact.DataObject.PostalAddress);
            Assert.AreEqual(insertedContact.DataObject.PostalAddress.City, updatedContact.DataObject.PostalAddress.City);
        }
Ejemplo n.º 5
0
        public void ShouldBeAbleToPutToApiWithXml()
        {
            var contactHelper = new ContactHelper(false);
            var contact       = contactHelper.GetMinimalContact();

            contact.GivenName    = "SerializationTests";
            contact.FamilyName   = "PutToApiWithXml";
            contact.EmailAddress = "*****@*****.**";

            var proxy = new ContactProxy {
                ContentType = RequestContentType.ApplicationXml
            };
            var insertResponse = proxy.InsertContact(contact);

            Assert.True(insertResponse.DataObject.InsertedContactId > 0);

            var insertedContact = proxy.GetContact(insertResponse.DataObject.InsertedContactId);

            Assert.True(insertedContact.IsSuccessfull && insertedContact.DataObject != null);

            insertedContact.DataObject.GivenName = "NewNameWithXml";

            var updateResult = proxy.UpdateContact(insertedContact.DataObject, insertedContact.DataObject.Id.GetValueOrDefault());

            Assert.True(updateResult.IsSuccessfull);

            var updatedContact = proxy.GetContact(updateResult.DataObject.UpdatedContactId);

            Assert.True(updatedContact.IsSuccessfull);
            Assert.Equal("NewNameWithXml", updatedContact.DataObject.GivenName);
        }
Ejemplo n.º 6
0
        public InsertContactResult AddContact()
        {
            var contact  = GetCompleteContact();
            var proxy    = new ContactProxy();
            var response = proxy.InsertContact(contact);

            return(response.DataObject);
        }
Ejemplo n.º 7
0
        public void ShouldAddNewContactAndUpdateCompanyAndContactManager()
        {
            var contactAggregateProxy = new ContactAggregateProxy();
            var contactProxy          = new ContactProxy();
            var companyProxy          = new CompanyProxy();

            var companyDetail   = GetCompany();
            var companyResponse = companyProxy.InsertCompany(companyDetail);

            var contactManager = GetContact();

            var contactManagerResponse = contactProxy.InsertContact(contactManager);
            var contactAggregate       = GetNewContactAggregate();

            contactAggregate.Company.Id                   = companyResponse.DataObject.InsertedCompanyId;
            contactAggregate.Company.LastUpdatedId        = companyResponse.DataObject.LastUpdatedId;
            contactAggregate.ContactManager.Id            = contactManagerResponse.DataObject.InsertedContactId;
            contactAggregate.ContactManager.LastUpdatedId = contactManagerResponse.DataObject.LastUpdatedId;

            var contactAggregateResponse = contactAggregateProxy.InsertContactAggregate(contactAggregate);

            Assert.IsTrue(contactAggregateResponse.IsSuccessfull, "Contact aggregate with new contact and updated company and contact manager failed");
            Assert.IsNotNull(contactAggregateResponse.DataObject);
            Assert.IsTrue(contactAggregateResponse.DataObject.CompanyId > 0, "Invalid CompanyId returned from InsertContactAggregate when updating company");
            Assert.IsTrue(contactAggregateResponse.DataObject.CompanyLastUpdatedId.Length > 0, "Invalid CompanyLastUpdatedId returned from InsertContactAggregate when updating company");
            Assert.IsTrue(contactAggregateResponse.DataObject.ContactManagerId > 0, "Invalid ContactManagerId returned from InsertContactAggregate when updating contact manager");
            Assert.IsTrue(contactAggregateResponse.DataObject.ContactManagerLastUpdatedId.Length > 0, "Invalid ContactManagerLastUpdatedId returned from InsertContactAggregate when updating contact manager");

            var dbContactAggregate =
                contactAggregateProxy.GetContactAggregate(contactAggregateResponse.DataObject.InsertedContactId);

            Assert.IsTrue(dbContactAggregate.IsSuccessfull);
            Assert.IsNotNull(dbContactAggregate.DataObject);
            Assert.IsNotNull(dbContactAggregate.DataObject.ContactManager.Id);
            Assert.IsNotNull(dbContactAggregate.DataObject.Company.Id);
            Assert.AreEqual(companyResponse.DataObject.InsertedCompanyId, dbContactAggregate.DataObject.Company.Id.Value, "Existing company not attached to contact aggregate");
            Assert.AreEqual(contactManagerResponse.DataObject.InsertedContactId, dbContactAggregate.DataObject.ContactManager.Id.Value, "Existing contact (manager) not attached to contact aggregate");

            var dbContactManager = contactProxy.GetContact(dbContactAggregate.DataObject.ContactManager.Id.Value);

            Assert.IsTrue(dbContactManager.IsSuccessfull);
            Assert.IsNotNull(dbContactManager.DataObject);

            AssertContactManager(dbContactAggregate.DataObject.ContactManager, dbContactManager.DataObject);
            Assert.AreEqual(dbContactAggregate.DataObject.ContactManager.LastUpdatedId,
                            dbContactManager.DataObject.LastUpdatedId, "LastUpdatedId not updated for contact manager");

            var dbCompany = companyProxy.GetCompany(dbContactAggregate.DataObject.Company.Id.Value);

            Assert.IsTrue(dbCompany.IsSuccessfull);
            Assert.IsNotNull(dbCompany.DataObject);

            AssertCompany(dbContactAggregate.DataObject.Company, dbCompany.DataObject);
            Assert.AreEqual(dbContactAggregate.DataObject.Company.LastUpdatedId, dbCompany.DataObject.LastUpdatedId,
                            "LastUpdatedId not updated for company");
        }
Ejemplo n.º 8
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;
            }
        }
Ejemplo n.º 9
0
        public void ShouldNotModifyExistingContactFieldsNotContainedInAggregateModel()
        {
            var contactProxy          = new ContactProxy();
            var contactAggregateProxy = new ContactAggregateProxy();
            var contactAggregate      = GetNewContactAggregate();

            var contact         = GetCompleteContact();
            var contactResponse = contactProxy.InsertContact(contact);

            contactAggregate.Id            = contactResponse.DataObject.InsertedContactId;
            contactAggregate.LastUpdatedId = contactResponse.DataObject.LastUpdatedId;

            var aggregateResponse = contactAggregateProxy.UpdateContactAggregate(contactAggregate, contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(aggregateResponse.IsSuccessfull);

            var updatedContactResponse = contactProxy.GetContact(contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(updatedContactResponse.IsSuccessfull);
            Assert.IsNotNull(updatedContactResponse.DataObject);
            var updatedContact = updatedContactResponse.DataObject;

            Assert.AreEqual(contact.AutoSendStatement, updatedContact.AutoSendStatement);
            Assert.AreEqual(contact.BpayDetails.BillerCode, updatedContact.BpayDetails.BillerCode);
            Assert.AreEqual(contact.BpayDetails.CRN, updatedContact.BpayDetails.CRN);
            Assert.AreEqual(contact.ChequeDetails.AcceptCheque, updatedContact.ChequeDetails.AcceptCheque);
            Assert.AreEqual(contact.ChequeDetails.ChequePayableTo, updatedContact.ChequeDetails.ChequePayableTo);
            Assert.AreEqual(contact.CustomField1, updatedContact.CustomField1);
            Assert.AreEqual(contact.CustomField2, updatedContact.CustomField2);
            Assert.AreEqual(contact.DefaultPurchaseDiscount, updatedContact.DefaultPurchaseDiscount);
            Assert.AreEqual(contact.DefaultSaleDiscount, updatedContact.DefaultSaleDiscount);
            Assert.AreEqual(contact.DirectDepositDetails.AcceptDirectDeposit, updatedContact.DirectDepositDetails.AcceptDirectDeposit);
            Assert.AreEqual(contact.DirectDepositDetails.AccountBSB, updatedContact.DirectDepositDetails.AccountBSB);
            Assert.AreEqual(contact.DirectDepositDetails.AccountName, updatedContact.DirectDepositDetails.AccountName);
            Assert.AreEqual(contact.DirectDepositDetails.AccountNumber, updatedContact.DirectDepositDetails.AccountNumber);
            Assert.AreEqual(contact.HomePhone, updatedContact.HomePhone);
            Assert.AreEqual(contact.LinkedInProfile, updatedContact.LinkedInProfile);
            Assert.AreEqual(contact.OtherAddress.City, updatedContact.OtherAddress.City);
            Assert.AreEqual(contact.OtherAddress.Country, updatedContact.OtherAddress.Country);
            Assert.AreEqual(contact.OtherAddress.Postcode, updatedContact.OtherAddress.Postcode);
            Assert.AreEqual(contact.OtherAddress.State, updatedContact.OtherAddress.State);
            Assert.AreEqual(contact.OtherAddress.Street, updatedContact.OtherAddress.Street);
            Assert.AreEqual(contact.OtherPhone, updatedContact.OtherPhone);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsInterval, updatedContact.PurchaseTradingTerms.TradingTermsInterval);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsIntervalType, updatedContact.PurchaseTradingTerms.TradingTermsIntervalType);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsType, updatedContact.PurchaseTradingTerms.TradingTermsType);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsInterval, updatedContact.SaleTradingTerms.TradingTermsInterval);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsIntervalType, updatedContact.SaleTradingTerms.TradingTermsIntervalType);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsType, updatedContact.SaleTradingTerms.TradingTermsType);
            Assert.AreEqual(contact.SkypeId, updatedContact.SkypeId);
            Assert.AreEqual(contact.TwitterId, updatedContact.TwitterId);
            Assert.AreEqual(contact.WebsiteUrl, updatedContact.WebsiteUrl);
        }
Ejemplo n.º 10
0
        private void GetPrimarySupplierContact()
        {
            var contact = new Contact()
            {
                GivenName    = "Peter",
                FamilyName   = "Baker",
                EmailAddress = "*****@*****.**",
                HomePhone    = "0252113414"
            };

            var proxy    = new ContactProxy();
            var response = proxy.InsertContact(contact);

            _primarySupplierId = response.DataObject.InsertedContactId;
        }
Ejemplo n.º 11
0
        public (Contact ContactDetail, int ContactId) CreateContact(int?companyId = null, string companyName = null)
        {
            var contactFake = new Faker <Contact>()
                              .RuleFor(c => c.CompanyId, companyId ?? CreateCompany(companyName).CompanyId)
                              .RuleFor(c => c.GivenName, (f, c) => f.Name.FirstName())
                              .RuleFor(c => c.FamilyName, (f, c) => f.Name.LastName())
                              .RuleFor(c => c.EmailAddress, (f, c) => f.Internet.Email(c.GivenName, c.FamilyName));

            var proxy   = new ContactProxy();
            var contact = contactFake.Generate();
            var result  = proxy.InsertContact(contact);

            Assert.True(result.IsSuccessfull, "Failed to add customer contact test data.");
            return(contact, result.DataObject.InsertedContactId);
        }
Ejemplo n.º 12
0
        public void ShouldBeAbleToPostToApiWithJson()
        {
            var contactHelper = new ContactHelper(false);
            var contact       = contactHelper.GetMinimalContact();

            contact.GivenName    = "SerializationTests";
            contact.FamilyName   = "PostToApiWithJson";
            contact.EmailAddress = "*****@*****.**";

            var proxy = new ContactProxy();

            proxy.ContentType = RequestContentType.ApplicationJson;
            var insertResponse = proxy.InsertContact(contact);

            Assert.True(insertResponse.DataObject.InsertedContactId > 0);
        }
Ejemplo n.º 13
0
        public void ShouldFailAggregateInsertIfContactManagerLastUpdatedIdIncorrect()
        {
            var contactProxy          = new ContactProxy();
            var contactAggregateProxy = new ContactAggregateProxy();
            var contactAggregate      = GetNewContactAggregate();
            var contact         = GetContact();
            var contactResponse = contactProxy.InsertContact(contact);

            contactAggregate.ContactManager.Id            = contactResponse.DataObject.InsertedContactId;
            contactAggregate.ContactManager.LastUpdatedId = contactResponse.DataObject.LastUpdatedId.ToLower();

            var aggregateResponse = contactAggregateProxy.InsertContactAggregate(contactAggregate);

            Assert.False(aggregateResponse.IsSuccessfull);
            Assert.Equal(HttpStatusCode.BadRequest, aggregateResponse.StatusCode);
            Assert.Equal("\"Record to be updated has changed since last read.\"", aggregateResponse.RawResponse);
        }
Ejemplo n.º 14
0
        public void InsertingContactWithIsActiveTrueShouldReturnActiveContact()
        {
            var contact = GetCompleteContact();

            contact.IsActive = true;

            var proxy    = new ContactProxy();
            var response = proxy.InsertContact(contact);

            Assert.IsTrue(response.IsSuccessfull);
            Assert.IsTrue(response.DataObject.InsertedContactId > 0);

            System.Threading.Thread.Sleep(1000); // Tags are saved through messagequeue, give time to be processed
            var insertedContact = proxy.GetContact(response.DataObject.InsertedContactId);

            Assert.IsNotNull(insertedContact.DataObject);
            Assert.IsNotNull(insertedContact.DataObject.IsActive);
            Assert.IsTrue(insertedContact.DataObject.IsActive.Value);
        }
Ejemplo n.º 15
0
        public void DeleteContact()
        {
            var contact = GetMinimalContact();

            var proxy  = new ContactProxy();
            var result = proxy.InsertContact(contact);

            Assert.IsTrue(result.IsSuccessfull);
            Assert.Greater(result.DataObject.InsertedContactId, 0);

            var deleteResult = proxy.DeleteContact(result.DataObject.InsertedContactId);

            Assert.IsTrue(deleteResult.IsSuccessfull);

            var deletedContact = proxy.GetContact(result.DataObject.InsertedContactId);

            Assert.IsNull(deletedContact.DataObject);
            Assert.AreEqual(HttpStatusCode.NotFound, deletedContact.StatusCode);
        }
Ejemplo n.º 16
0
        public void DeleteContact()
        {
            var contact = _contactFixture.ContactHelper.GetMinimalContact();

            var proxy  = new ContactProxy();
            var result = proxy.InsertContact(contact);

            Assert.True(result.IsSuccessfull);
            Assert.True(result.DataObject.InsertedContactId > 0);

            var deleteResult = proxy.DeleteContact(result.DataObject.InsertedContactId);

            Assert.True(deleteResult.IsSuccessfull);

            var deletedContact = proxy.GetContact(result.DataObject.InsertedContactId);

            Assert.Null(deletedContact.DataObject);
            Assert.Equal(HttpStatusCode.NotFound, deletedContact.StatusCode);
        }
Ejemplo n.º 17
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);
        }
Ejemplo n.º 18
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);
        }
Ejemplo n.º 19
0
        public void InsertContactWithoutAddressDoesNotFail()
        {
            var contact = new Contact()
            {
                GivenName    = "John",
                FamilyName   = "Cook",
                EmailAddress = "*****@*****.**",
                HomePhone    = "0211114444"
            };

            var proxy    = new ContactProxy();
            var response = proxy.InsertContact(contact);

            Assert.IsTrue(response.IsSuccessfull);
            Assert.IsTrue(response.DataObject.InsertedContactId > 0);

            System.Threading.Thread.Sleep(1000); // Tags are saved through messagequeue, give time to be processed
            var insertedContact = proxy.GetContact(response.DataObject.InsertedContactId);

            Assert.IsNotNull(insertedContact.DataObject);
            Assert.AreEqual(contact.EmailAddress, insertedContact.DataObject.EmailAddress);
        }
Ejemplo 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);
        }
Ejemplo n.º 21
0
        public void InsertCompleteContact()
        {
            var contact = GetCompleteContact();

            var proxy    = new ContactProxy();
            var response = proxy.InsertContact(contact);

            Assert.IsTrue(response.IsSuccessfull);
            Assert.IsTrue(response.DataObject.InsertedContactId > 0);

            System.Threading.Thread.Sleep(1000); // Tags are saved through messagequeue, give time to be processed
            var insertedContact = proxy.GetContact(response.DataObject.InsertedContactId);

            Assert.IsNotNull(insertedContact.DataObject);

            Assert.AreEqual(contact.DirectDepositDetails.AcceptDirectDeposit, insertedContact.DataObject.DirectDepositDetails.AcceptDirectDeposit);
            Assert.AreEqual(contact.ChequeDetails.AcceptCheque, insertedContact.DataObject.ChequeDetails.AcceptCheque);
            Assert.AreEqual(contact.AutoSendStatement.HasValue, insertedContact.DataObject.AutoSendStatement.HasValue);
            Assert.AreEqual(contact.BpayDetails.BillerCode, insertedContact.DataObject.BpayDetails.BillerCode);
            Assert.AreEqual(contact.BpayDetails.CRN, insertedContact.DataObject.BpayDetails.CRN);
            Assert.AreEqual(contact.ChequeDetails.ChequePayableTo, insertedContact.DataObject.ChequeDetails.ChequePayableTo);
            Assert.AreEqual(contact.ContactId, insertedContact.DataObject.ContactId);
            Assert.AreEqual(contact.ContactManagerId, insertedContact.DataObject.ContactManagerId);
            Assert.AreEqual(contact.CustomField1, insertedContact.DataObject.CustomField1);
            Assert.AreEqual(contact.CustomField2, insertedContact.DataObject.CustomField2);
            Assert.AreEqual(contact.DefaultPurchaseDiscount, insertedContact.DataObject.DefaultPurchaseDiscount);
            Assert.AreEqual(contact.DefaultSaleDiscount, insertedContact.DataObject.DefaultSaleDiscount);
            Assert.AreEqual(contact.DirectDepositDetails.AccountBSB, insertedContact.DataObject.DirectDepositDetails.AccountBSB);
            Assert.AreEqual(contact.DirectDepositDetails.AccountName, insertedContact.DataObject.DirectDepositDetails.AccountName);
            Assert.AreEqual(contact.DirectDepositDetails.AccountNumber, insertedContact.DataObject.DirectDepositDetails.AccountNumber);
            Assert.AreEqual(contact.EmailAddress, insertedContact.DataObject.EmailAddress);
            Assert.AreEqual(contact.FamilyName, insertedContact.DataObject.FamilyName);
            Assert.AreEqual(contact.Fax, insertedContact.DataObject.Fax);
            Assert.AreEqual(contact.GivenName, insertedContact.DataObject.GivenName);
            Assert.AreEqual(contact.HomePhone, insertedContact.DataObject.HomePhone);
            Assert.AreEqual(contact.IsActive, insertedContact.DataObject.IsActive);
            Assert.AreEqual(contact.IsContractor, insertedContact.DataObject.IsContractor);
            Assert.AreEqual(contact.IsCustomer, insertedContact.DataObject.IsCustomer);
            Assert.AreEqual(contact.IsPartner, insertedContact.DataObject.IsPartner);
            Assert.AreEqual(contact.IsSupplier, insertedContact.DataObject.IsSupplier);
            Assert.AreEqual(contact.LinkedInProfile, insertedContact.DataObject.LinkedInProfile);
            Assert.AreEqual(contact.MiddleInitials, insertedContact.DataObject.MiddleInitials);
            Assert.AreEqual(contact.MobilePhone, insertedContact.DataObject.MobilePhone);
            Assert.AreEqual(contact.CompanyId, insertedContact.DataObject.CompanyId);
            Assert.AreEqual(contact.PositionTitle, insertedContact.DataObject.PositionTitle);
            Assert.IsNotNull(contact.OtherAddress);
            Assert.AreEqual(contact.OtherAddress.City, insertedContact.DataObject.OtherAddress.City);
            Assert.AreEqual(contact.OtherAddress.Country, insertedContact.DataObject.OtherAddress.Country);
            Assert.AreEqual(contact.OtherAddress.Postcode, insertedContact.DataObject.OtherAddress.Postcode);
            Assert.AreEqual(contact.OtherAddress.State, insertedContact.DataObject.OtherAddress.State);
            Assert.AreEqual(contact.OtherAddress.Street, insertedContact.DataObject.OtherAddress.Street);
            Assert.AreEqual(contact.PostalAddress.City, insertedContact.DataObject.PostalAddress.City);
            Assert.AreEqual(contact.PostalAddress.Country, insertedContact.DataObject.PostalAddress.Country);
            Assert.AreEqual(contact.PostalAddress.Postcode, insertedContact.DataObject.PostalAddress.Postcode);
            Assert.AreEqual(contact.PostalAddress.State, insertedContact.DataObject.PostalAddress.State);
            Assert.AreEqual(contact.PostalAddress.Street, insertedContact.DataObject.PostalAddress.Street);
            Assert.AreEqual(contact.PrimaryPhone, insertedContact.DataObject.PrimaryPhone);
            Assert.IsNotNull(insertedContact.DataObject.PurchaseTradingTerms);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsInterval, insertedContact.DataObject.PurchaseTradingTerms.TradingTermsInterval);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsIntervalType, insertedContact.DataObject.PurchaseTradingTerms.TradingTermsIntervalType);
            Assert.AreEqual(contact.PurchaseTradingTerms.TradingTermsType, insertedContact.DataObject.PurchaseTradingTerms.TradingTermsType);
            Assert.IsNotNull(insertedContact.DataObject.SaleTradingTerms);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsInterval, insertedContact.DataObject.SaleTradingTerms.TradingTermsInterval);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsIntervalType, insertedContact.DataObject.SaleTradingTerms.TradingTermsIntervalType);
            Assert.AreEqual(contact.SaleTradingTerms.TradingTermsType, insertedContact.DataObject.SaleTradingTerms.TradingTermsType);
            Assert.AreEqual(contact.Salutation, insertedContact.DataObject.Salutation);
            Assert.AreEqual(contact.SkypeId, insertedContact.DataObject.SkypeId);
            Assert.AreEqual(contact.TwitterId, insertedContact.DataObject.TwitterId);
            Assert.AreEqual(contact.WebsiteUrl, insertedContact.DataObject.WebsiteUrl);
        }
Ejemplo n.º 22
0
        public void ShouldUpdateContactAndUpdateCompanyAndContactManager()
        {
            var contactProxy          = new ContactProxy();
            var companyProxy          = new CompanyProxy();
            var contactAggregateProxy = new ContactAggregateProxy();
            var contact         = GetContact();
            var contactResponse = contactProxy.InsertContact(contact);

            Assert.IsTrue(contactResponse.IsSuccessfull);
            var contactManager         = GetContact();
            var contactManagerResponse = contactProxy.InsertContact(contactManager);

            Assert.IsTrue(contactManagerResponse.IsSuccessfull);
            var company         = GetCompany();
            var companyResponse = companyProxy.InsertCompany(company);

            Assert.IsTrue(companyResponse.IsSuccessfull);

            var contactAggregate = GetNewContactAggregate();

            contactAggregate.Id = contactResponse.DataObject.InsertedContactId;
            contactAggregate.ContactManager.Id            = contactManagerResponse.DataObject.InsertedContactId;
            contactAggregate.ContactManager.LastUpdatedId = contactManagerResponse.DataObject.LastUpdatedId;
            contactAggregate.Company.Id            = companyResponse.DataObject.InsertedCompanyId;
            contactAggregate.Company.LastUpdatedId = companyResponse.DataObject.LastUpdatedId;

            var contactAggregateUpdateResponse = contactAggregateProxy.UpdateContactAggregate(contactAggregate,
                                                                                              contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(contactAggregateUpdateResponse.IsSuccessfull, "Updating contact and company and contact manager in aggregate failed");
            Assert.IsNotNull(contactAggregateUpdateResponse.DataObject);
            Assert.IsTrue(contactAggregateUpdateResponse.DataObject.CompanyId > 0, "Invalid CompanyId returned from UpdateContactAggregate when updating company");
            Assert.IsTrue(contactAggregateUpdateResponse.DataObject.CompanyLastUpdatedId.Length > 0, "Invalid CompanyLastUpdatedId returned from UpdateContactAggregate when updating company");
            Assert.IsTrue(contactAggregateUpdateResponse.DataObject.ContactManagerId > 0, "Invalid ContactManagerId returned from UpdateContactAggregate when updating contact manager");
            Assert.IsTrue(contactAggregateUpdateResponse.DataObject.ContactManagerLastUpdatedId.Length > 0, "Invalid ContactManagerLastUpdatedId returned from UpdateContactAggregate when updating contact manager");

            var updatedContactAggregateResponse =
                contactAggregateProxy.GetContactAggregate(contactResponse.DataObject.InsertedContactId);

            Assert.IsTrue(updatedContactAggregateResponse.IsSuccessfull, "Updating contact and company and contact manager in aggregate failed");
            Assert.IsNotNull(updatedContactAggregateResponse.DataObject);
            var updatedAggregate = updatedContactAggregateResponse.DataObject;

            Assert.IsNotNull(updatedAggregate.Company, "Company not associated with updated aggregate");
            Assert.IsNotNull(updatedAggregate.ContactManager, "Contact manager not associated with updated aggregate");
            Assert.IsNotNull(updatedAggregate.Company.Id);
            Assert.IsNotNull(updatedAggregate.ContactManager.Id);

            var updatedContact = contactProxy.GetContact(contactResponse.DataObject.InsertedContactId);

            AssertUpdatedContact(contactAggregate, updatedContact);

            var updatedCompany = companyProxy.GetCompany(updatedAggregate.Company.Id.Value);

            Assert.IsTrue(updatedCompany.IsSuccessfull);
            Assert.IsNotNull(updatedCompany.DataObject);

            AssertCompany(contactAggregate.Company, updatedCompany.DataObject);

            var updatedContactManager = contactProxy.GetContact(updatedAggregate.ContactManager.Id.Value);

            Assert.IsTrue(updatedCompany.IsSuccessfull);
            Assert.IsNotNull(updatedCompany.DataObject);
            AssertContactManager(contactAggregate.ContactManager, updatedContactManager.DataObject);
        }