public void CreateNewContactWithNewCaseTest() { //ICustomerRepository client = new EFCustomersRepository(new CustomerEntityFactory()); var client = GetRepository(); Contact contactToDb = new Contact(); contactToDb.BirthDate = new DateTime(1970, 8, 15); contactToDb.FullName = "dataServiceFullnameTest"; Case caseToDb = new Case(); caseToDb.Description = "dataServiceDescriptionTest"; caseToDb.Number = "qweqweas"; caseToDb.Priority = 1; caseToDb.Status = CaseStatus.Open.ToString(); caseToDb.Title = "dataServiceTitleTest"; contactToDb.Addresses.Add(CreateAddress("Верхнеозерная", "25/8", "Калининград", "RUS", "Russianfederation", string.Empty, "238210", "Primary")); contactToDb.Addresses.Add(CreateAddress("пл. Победы", "1", "Калининград", "RUS", "Russianfederation", string.Empty, "666259", "Shipping")); contactToDb.Emails.Add(new Email { Address = "*****@*****.**", Type = "Primary" }); contactToDb.Emails.Add(new Email { Address = "*****@*****.**", Type = "Secondary" }); contactToDb.Phones.Add(new Phone { Number = "12346578912", Type = "Primary" }); //add labels var labels = client.Labels.ToList(); foreach (var lb in labels) { client.Attach(lb); } var label1 = labels[0]; var label2 = labels[1]; contactToDb.Labels.Add(label1); caseToDb.Labels.Add(label1); caseToDb.Labels.Add(label2); //save new contact in db caseToDb.ContactId = contactToDb.MemberId; client.Add(caseToDb); client.Add(contactToDb); client.UnitOfWork.Commit(); string contactId = contactToDb.MemberId; client = new DSCustomerClient(service.ServiceUri, new CustomerEntityFactory(), null); Contact contactFromDb = client.Members.Where(m => (m as Contact).MemberId == contactId).OfType <Contact>() .Expand(c => c.Addresses).Expand(c => c.Cases).Expand(c => c.Emails) .Expand(c => c.Labels).Expand(c => c.Notes).Expand(c => c.Phones).SingleOrDefault(); //contact is saved correctly Assert.IsNotNull(contactFromDb); //cases count>0 Assert.IsTrue(contactFromDb.Cases.Count > 0); //addresses count>0 Assert.IsTrue(contactFromDb.Addresses.Count > 0); //phones count > 0 Assert.IsTrue(contactFromDb.Phones.Count > 0); //emails count > 0 Assert.IsTrue(contactFromDb.Emails.Count > 0); Assert.IsTrue(contactToDb.Labels.Count == 1); }
public void CreateNewContactWithNewCaseTest() { //ICustomerRepository client = new EFCustomersRepository(new CustomerEntityFactory()); var client = GetRepository(); Contact contactToDb = new Contact(); contactToDb.BirthDate = new DateTime(1970, 8, 15); contactToDb.FullName = "dataServiceFullnameTest"; Case caseToDb = new Case(); caseToDb.Description = "dataServiceDescriptionTest"; caseToDb.Number = "qweqweas"; caseToDb.Priority = 1; caseToDb.Status = CaseStatus.Open.ToString(); caseToDb.Title = "dataServiceTitleTest"; contactToDb.Addresses.Add(CreateAddress("Верхнеозерная", "25/8", "Калининград", "RUS", "Russianfederation", string.Empty, "238210", "Primary")); contactToDb.Addresses.Add(CreateAddress("пл. Победы", "1", "Калининград", "RUS", "Russianfederation", string.Empty, "666259", "Shipping")); contactToDb.Emails.Add(new Email { Address = "*****@*****.**", Type = "Primary" }); contactToDb.Emails.Add(new Email { Address = "*****@*****.**", Type = "Secondary" }); contactToDb.Phones.Add(new Phone { Number = "12346578912", Type = "Primary" }); //add labels var labels = client.Labels.ToList(); foreach (var lb in labels) { client.Attach(lb); } var label1 = labels[0]; var label2 = labels[1]; contactToDb.Labels.Add(label1); caseToDb.Labels.Add(label1); caseToDb.Labels.Add(label2); //save new contact in db caseToDb.ContactId = contactToDb.MemberId; client.Add(caseToDb); client.Add(contactToDb); client.UnitOfWork.Commit(); string contactId = contactToDb.MemberId; client = new DSCustomerClient(service.ServiceUri, new CustomerEntityFactory(), null); Contact contactFromDb = client.Members.Where(m => (m as Contact).MemberId == contactId).OfType<Contact>() .Expand(c => c.Addresses).Expand(c => c.Cases).Expand(c => c.Emails) .Expand(c => c.Labels).Expand(c => c.Notes).Expand(c => c.Phones).SingleOrDefault(); //contact is saved correctly Assert.IsNotNull(contactFromDb); //cases count>0 Assert.IsTrue(contactFromDb.Cases.Count > 0); //addresses count>0 Assert.IsTrue(contactFromDb.Addresses.Count > 0); //phones count > 0 Assert.IsTrue(contactFromDb.Phones.Count > 0); //emails count > 0 Assert.IsTrue(contactFromDb.Emails.Count > 0); Assert.IsTrue(contactToDb.Labels.Count == 1); }