示例#1
0
        public void GenerateFirstNameTest()
        {
            Contact contact = new Contact { Name = "Todd", FirstNames = "Test business", };
            contact.AddPerson(new Person { FirstName="John", IncludeInDisplayName=true});
            contact.AddPerson(new Person { FirstName="Anne", IncludeInDisplayName=true});
            contact.AddPerson(new Person { FirstName="David", IncludeInDisplayName=true});

            //Test - 3 people included
            string expected = "John, Anne & David";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.FirstNames);
            //Test - 2 people included
            contact.People[2].IncludeInDisplayName = false;
            expected = "John & Anne";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.FirstNames);
            //Test - just one person included
            contact.People[1].IncludeInDisplayName = false;
            expected = "John";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.FirstNames);
            //Test - error if no people included
            contact.People[0].IncludeInDisplayName = false;
            //ExceptionAssert.Throws<ArgumentException>(() => contact.UpdateFirstNames());
            //Test - if business, return Display name directly
            contact.IsBusiness = true;
            expected = "";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.FirstNames);
        }
示例#2
0
        public void ContactMainTest()
        {
            string address = "1 road name\npostcode\ntown";
            string email = "*****@*****.**";
            bool isbusiness = false;
            string lastname = "Lastname";
            string notes = "some notes here";
            string phonenumber = "021 9551 684 6";

            string contact1firstname = "Horrace";
            string worknumber = "032 568 79 85";
            string contact2email = "*****@*****.**";

            Contact target = new Contact()
            {
                Address = address,
                Email = email,
                IsBusiness = isbusiness,
                Name = lastname,
                Notes = notes,
                PhoneNumber = phonenumber,
            };
            target.AddPerson(new Person { DateOfBirth = new DateTime(1968, 5, 3), FirstName = contact1firstname, LastName = "Lastname", MobileNumber= "079 813 83 53", WorkNumber = worknumber, Email = "*****@*****.**", IncludeInDisplayName = true });
            target.AddPerson(new Person { DateOfBirth = new DateTime(1984, 7, 13), FirstName = "Contact1", LastName = "Lastname", MobileNumber = "079 887 35 00", Email = contact2email, IncludeInDisplayName = false });

            Assert.Equal(target.Address, address);
            Assert.Equal(target.Email, email);
            Assert.Equal(target.IsBusiness, isbusiness);
            Assert.Equal(target.Name, lastname);
            Assert.Equal(target.Notes, notes);
            Assert.Equal(target.PhoneNumber, phonenumber);
            Assert.Equal(target.People[0].WorkNumber, worknumber);

            Assert.Equal(target.People.Count, 2);
            Assert.Equal(target.People[0].FirstName, contact1firstname);
            Assert.Equal(target.People[1].Email, contact2email);
        }
示例#3
0
        /// <summary>
        /// Gets the address book from CSV dictionary.
        /// </summary>
        //(This would be private, but test generation wouldn't work...)
        internal static AddressBook GetAddressBookFromLookup(IEnumerable<Dictionary<string, string>> csv)
        {
            AddressBook book = new AddressBook();
            foreach(var row in csv)
            {
                bool isbusiness = (row[Keys.HomePhone] == "" && row[Keys.WorkPhone] != ""); //is business if no home phone AND has business phone
                bool multiperson = row[Keys.FirstName].Contains('&');
                var contact = new Contact
                {
                    Name = row[Keys.LastName],
                    Email = ContactMailLogic(row, multiperson),
                    IsBusiness = isbusiness,
                    PhoneNumber = isbusiness ? row[Keys.WorkPhone] : row[Keys.HomePhone],
                    Address = GetAddress(row),
                    Notes = row[Keys.Notes]
                };
                //Add one or two people, based on first name containing &
                if(multiperson)
                {
                    contact.AddPerson(FirstPerson(row, false));
                    contact.AddPerson(SecondPerson(row));
                }
                else
                {
                    contact.AddPerson(FirstPerson(row, true));
                }

                //Update first names with new people
                contact.UpdateFirstNames();
                book.AddContact(contact);
            }

            return book;
        }
示例#4
0
        public void MergeContactsTest()
        {
            var contact1 = new Contact
            {
                Address = "Address",
                Email = "*****@*****.**",
                IsBusiness = false,
                Name = "Name",
                PhoneNumber = "012 3209 2 93",
                Notes = "Notes 1"
            };
            contact1.AddPerson(new Person { FirstName = "Duplicate", Email="", LastName="person1name", MobileNumber = "mobile1a", WorkNumber="work1a", DateOfBirth=new DateTime(1964, 12, 1) });
            contact1.AddPerson(new Person { FirstName = "Marjory", Email="person2mail", LastName="person2name", MobileNumber = "mobile2", WorkNumber="work2", DateOfBirth=new DateTime(1968, 12, 1) });

            var contact2 = new Contact
            {
                Address = "Address2",
                Email = "*****@*****.**",
                IsBusiness = false,
                Name = "Name",
                PhoneNumber = "012 3209 2 93",
                Notes = "Notes 2"
            };
            contact2.AddPerson(new Person { FirstName = "Duplicate", Email = "person1email", LastName = "", MobileNumber = "mobile1b", WorkNumber = "work1b" });

            var contact3 = new Contact
            {
                Address = "Address3",
                Email = "*****@*****.**",
                IsBusiness = false,
                Name = "Name",
                PhoneNumber = "012 3209 2 93",
                Notes = "Notes 3"
            };
            contact3.AddPerson(new Person { FirstName = "Herny", Email = "person3mail", LastName = "person3name", MobileNumber = "mobile3", WorkNumber = "work3", DateOfBirth = new DateTime(1966, 12, 1) });

            var contacts = new List<Contact> { contact1, contact2, contact3 };

            var actual = Contact.MergeContacts(contacts);
            Assert.Equal(contact1.Address, actual.Address);
            Assert.Equal(contact1.Name, actual.Name);
            Assert.Equal("Notes 1\r\nNotes 2\r\nNotes 3", actual.Notes);
            Assert.Equal(3, actual.People.Count);
            Assert.Equal(contact1.People[1].FirstName, actual.People[1].FirstName);
            Assert.Equal(contact3.People[0].FirstName, actual.People[2].FirstName);
            Assert.Equal(contact2.People[0].Email, actual.People[0].Email);
            Assert.Equal(contact1.People[0].LastName, actual.People[0].LastName);
            Assert.Equal("mobile1a/mobile1b", actual.People[0].MobileNumber);
            Assert.Equal(new DateTime(1964, 12, 1), actual.People[0].DateOfBirth);
        }
示例#5
0
        public void OrderByNameDisplayNameTest()
        {
            Contact contact = new Contact { Name = "Todd", FirstNames = "Test business", };
            contact.AddPerson(new Person { FirstName = "John", IncludeInDisplayName = true });
            contact.AddPerson(new Person { FirstName = "Anne", IncludeInDisplayName = true });
            contact.AddPerson(new Person { FirstName = "David", IncludeInDisplayName = true });

            //Test - 3 people included
            string expected = "John, Anne & David Todd";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.DisplayName);
            expected = "Todd, John, Anne & David";
            Assert.Equal(expected, contact.OrderByName);
            //Test - 2 people included
            contact.People[2].IncludeInDisplayName = false;
            expected = "John & Anne Todd";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.DisplayName);
            expected = "Todd, John & Anne";
            Assert.Equal(expected, contact.OrderByName);
            //Test - just one person included
            contact.People[1].IncludeInDisplayName = false;
            expected = "John Todd";
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.DisplayName);
            expected = "Todd, John";
            Assert.Equal(expected, contact.OrderByName);
            //Test - if business, return Display name directly
            contact.IsBusiness = true;
            expected = contact.Name;
            contact.UpdateFirstNames();
            Assert.Equal(expected, contact.DisplayName);
            Assert.Equal(expected, contact.OrderByName);
        }