Ejemplo n.º 1
0
        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);

		}