public void TestAddingContactToGroup() { List <GroupData> grList = AddressBookDBHelper.GetAllGroups(); List <ContactData> cdList = AddressBookDBHelper.GetAllContacts(); if (cdList.Count == 0) { new ContactsTests().ContactCreationTest(ContactsTests.ContactProvider().GetEnumerator().Current); cdList = AddressBookDBHelper.GetAllContacts(); } if (grList.Count == 0) { GroupCreationTest(GroupsCreator().ElementAt(0)); grList = AddressBookDBHelper.GetAllGroups(); } // найдем контакт, который НЕ во всех группах foreach (ContactData cd in cdList) { List <GroupData> cdGroups = AddressBookDBHelper.GetGroupsByContact(cd); if (cdGroups.Count != grList.Count) // где то есть группа БЕЗ этого контакта { GroupData gr = null; if (cdGroups.Count == 0) // контакта нет ни в одной группе { gr = grList[0]; } else { gr = grList.Except(cdGroups).First(); } TestAddingContactToGroupActionPart(gr, cd); return; } /* * foreach (GroupData gr in cdGroups) * { * System.Console.Out.WriteLine(string.Format("For contact : {0} -> group: {1}", cd.Name, gr.Name)); * } */ } // если мы тут, значит все контакты во всех группах // можно создать контакт и впихнуть в любую группу, или создать новую группу и взять любой контакт // ну а раз тест в классе групп, то создадим группу и впихнем в нее первый контакт GroupCreationTest(GroupsCreator().ElementAt(0)); TestAddingContactToGroupActionPart( AddressBookDBHelper.GetAllGroups().Except(AddressBookDBHelper.GetGroupsByContact(cdList[0])).First(), cdList[0]); }
public delegate void XMLWriterDelegate <T>(System.Collections.IList elements, StreamWriter writer); //declaring a delegate static void Main(string[] args) { if (args.Length < 3) { System.Console.Out.WriteLine("Descr: util for generating random data for addressbook tests"); System.Console.Out.WriteLine("Usage: app.exe typeOfData countOfElements outPutFileName [typeOfFile]"); System.Console.Out.WriteLine("typeOfData : groups | contacts"); System.Console.Out.WriteLine("countOfElements : count of elements to create (int32)"); System.Console.Out.WriteLine("outPutFileName : full path to file to save to"); System.Console.Out.WriteLine("typeOfFile : xml | json : if not set used postfix of filename (.xml | .json)"); System.Environment.Exit(1); } string typeOfData = args[0]; int countOfElementsToCreate = Convert.ToInt32(args[1]); string fileName = args[2]; string format = null; if (args.Length > 3) { format = args.ElementAt(3); } else { format = fileName.Split('.').Last(); } System.Collections.IList elements = null; StreamWriter writer = new StreamWriter(fileName); XMLWriterDelegate <BaseData> xmlWriter = null; switch (typeOfData) { case "contacts": elements = new List <ContactData>(ContactsTests.RandomContactProvider(countOfElementsToCreate)); xmlWriter = WriteToXMLFile <ContactData>; break; case "groups": elements = new List <GroupData>(GroupsTests.RandomGroupProvider(countOfElementsToCreate)); xmlWriter = WriteToXMLFile <GroupData>; break; default: System.Console.Out.WriteLine("Unknown dataType: " + typeOfData); System.Environment.Exit(1); break; } switch (format) { case "xml": xmlWriter(elements, writer); break; case "json": WriteToJSONFile(elements, writer); break; default: System.Console.Out.WriteLine("Unknown format: " + format); System.Environment.Exit(1); break; } writer.Close(); }
public void TestRemovalContactFromGroup() { // получить список групп (из БД) // найти группу где есть хоть один контакт (из БД) // открыть контакты и выбрать эту группу в фильтре // выбрать контакт в списке и удалить его // получить новый список контактов в выбранно группе // удалить удаленный контакт из первого списка и сравнить List <GroupData> grList = AddressBookDBHelper.GetAllGroups(); List <ContactData> cdList = AddressBookDBHelper.GetAllContacts(); if (cdList.Count == 0) { new ContactsTests().ContactCreationTest(ContactsTests.ContactProvider().GetEnumerator().Current); cdList = AddressBookDBHelper.GetAllContacts(); } if (grList.Count == 0) { GroupCreationTest(GroupsCreator().ElementAt(0)); grList = AddressBookDBHelper.GetAllGroups(); } ContactData victumContact = null; GroupData victumGroup = null; List <ContactData> oldList = null; foreach (GroupData gr in AddressBookDBHelper.GetAllGroups()) { oldList = AddressBookDBHelper.GetContactsInGroup(gr); if (oldList.Count > 0) { victumGroup = gr; break; } } if (victumGroup == null) { // All groups are empty Assert.Warn("All groups are empty"); victumGroup = AddressBookDBHelper.GetAllGroups().First(); victumContact = AddressBookDBHelper.GetAllContacts().First(); TestAddingContactToGroupActionPart(victumGroup, victumContact); } else { victumContact = oldList.First(); } // а теперь сами проверки по удалению группы... app.mContactsHelper.GoToContacts() .SelectGroupFilter(victumGroup.Name) .SelectContact(victumContact.Id) .CommitRemoveContactFromGroup(); List <ContactData> newList = AddressBookDBHelper.GetContactsInGroup(victumGroup); oldList.Remove(victumContact); newList.Sort(); oldList.Sort(); Assert.AreEqual(oldList, newList); }