Exemplo n.º 1
0
        public void SingletonQueryUpdateNavigationSingleEntityPropertyClientTest()
        {
            TestClientContext             = this.CreateWrappedContext <InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            Company company        = null;
            var     queryCompany   = TestClientContext.Company.Expand("CoreDepartment");
            var     queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);

            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.CoreDepartment != null);

            //Single Entity
            company.CoreDepartment = null;
            var ar15 = TestClientContext.BeginLoadProperty(company, "CoreDepartment", null, null).EnqueueWait(this);

            TestClientContext.EndLoadProperty(ar15);
            Assert.True(company.CoreDepartment != null);

            Random     rand = new Random();
            int        tmpCoreDepartmentID = rand.Next();
            Department coreDepartment      = new Department()
            {
                DepartmentID = tmpCoreDepartmentID,
                Name         = "ID" + tmpCoreDepartmentID
            };

            TestClientContext.AddToDepartments(coreDepartment);
            TestClientContext.AddLink(company, "Departments", coreDepartment);
            var ar1 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar1);

            //Update Navigation Property - Single Entity
            TestClientContext.SetLink(company, "CoreDepartment", coreDepartment);
            var ar3 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar3);

            //Projection with Navigation properties - Select
            queryCompany = TestClientContext.Company.Select(c => new Company {
                CompanyID = c.CompanyID, CoreDepartment = c.CoreDepartment
            }) as DataServiceQuerySingle <Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company        = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.CoreDepartment.DepartmentID == tmpCoreDepartmentID);
            this.EnqueueTestComplete();
        }
Exemplo n.º 2
0
        public void SingletonQueryUpdateNavigationCollectionPropertyClientTest()
        {
            TestClientContext             = this.CreateWrappedContext <InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            var queryCompany   = TestClientContext.Company as DataServiceQuerySingle <Company>;
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            var company        = queryCompany.EndGetValue(queryCompanyAr);

            //Load Navigation Property
            var loadDeparments = TestClientContext.BeginLoadProperty(company, "Departments", null, null).EnqueueWait(this);

            TestClientContext.EndLoadProperty(loadDeparments);
            Assert.True(company.Departments.Count > 0);

            //Add Navigation Property - Collection
            Random     rand            = new Random();
            int        tmpDepartmentID = rand.Next();
            Department department      = new Department()
            {
                DepartmentID = tmpDepartmentID,
                Name         = "ID" + tmpDepartmentID
            };

            TestClientContext.AddToDepartments(department);
            TestClientContext.AddLink(company, "Departments", department);
            var addDepartmentsLink = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(addDepartmentsLink);

            //Projection with Navigation properties - Select
            var selectCompany = TestClientContext.Company.Select(c => new Company {
                CompanyID = c.CompanyID, Departments = c.Departments
            }) as DataServiceQuerySingle <Company>;
            var selectCompanyAr  = selectCompany.BeginGetValue(null, null).EnqueueWait(this);
            var projectedCompany = selectCompany.EndGetValue(selectCompanyAr);

            Assert.True(projectedCompany.Departments.Any(c => c.DepartmentID == tmpDepartmentID));

            //Update EntitySet's Navigation Property - Singleton
            TestClientContext.SetLink(department, "Company", company);
            var ar4 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar4);

            //Query(Expand) EntitySet's Navigation Property - Singleton
            var queryDepartment   = TestClientContext.Departments.Expand(d => d.Company).Where(d => d.DepartmentID == tmpDepartmentID) as DataServiceQuery <Department>;
            var queryDepartmentAr = queryDepartment.BeginExecute(null, null).EnqueueWait(this);

            department = queryDepartment.EndExecute(queryDepartmentAr).SingleOrDefault();
            Assert.True(department.Company.CompanyID == company.CompanyID);

            //Delete Navigation Property - EntitySet
            TestClientContext.DeleteLink(company, "Departments", department);
            var deleteLinkAr = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(deleteLinkAr);

            //Expand Navigation Property - EntitySet
            queryCompany   = TestClientContext.Company.Expand("Departments");
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company        = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(!company.Departments.Any(c => c.DepartmentID == tmpDepartmentID));

            this.EnqueueTestComplete();
        }
Exemplo n.º 3
0
        public void SingletonQueryUpdateNavigationSingletonPropertyClientTest()
        {
            TestClientContext             = this.CreateWrappedContext <InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            var queryCompany   = TestClientContext.Company as DataServiceQuerySingle <Company>;
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            var company        = queryCompany.EndGetValue(queryCompanyAr);

            //Query Singleton again with Execute
            var queryVipCustomerAr = TestClientContext.BeginExecute <Customer>(new Uri("VipCustomer", UriKind.Relative), null, null).EnqueueWait(this);
            var vipCustomer        = TestClientContext.EndExecute <Customer>(queryVipCustomerAr).Single();

            Assert.True(vipCustomer != null);

            //Update Singleton's Navigation property - Singleton
            vipCustomer.City = "UpdatedCity";
            TestClientContext.UpdateRelatedObject(company, "VipCustomer", vipCustomer);
            var ar6 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar6);

            //Expand Navigation Property - Singleton
            company.VipCustomer = null;
            queryCompany        = TestClientContext.Company.Expand(c => c.VipCustomer);
            queryCompanyAr      = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company             = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.VipCustomer.City == "UpdatedCity");

            //Update Navigation Property - Delete the Singleton navigation
            TestClientContext.SetLink(company, "VipCustomer", null);
            var ar7 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar7);

            //Expand Navigation Property using name- Singleton
            company.VipCustomer = null;
            queryCompany        = TestClientContext.Company.Expand("VipCustomer");
            queryCompanyAr      = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company             = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.VipCustomer == null);

            //Update Navigation Property - Singleton
            TestClientContext.SetLink(company, "VipCustomer", vipCustomer);
            var ar8 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(ar8);

            //LoadProperty Navigation Property - Singleton
            company.VipCustomer = null;
            var ar13 = TestClientContext.BeginLoadProperty(company, "VipCustomer", null, null).EnqueueWait(this);

            TestClientContext.EndLoadProperty(ar13);
            Assert.True(company.VipCustomer != null);

            //Expand Navigation Property - Singleton
            company.VipCustomer = null;
            queryCompany        = TestClientContext.Company.Expand(c => c.VipCustomer);
            queryCompanyAr      = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company             = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.VipCustomer != null);

            //Query Singleton's Navigation Property - Singleton
            queryCompany = TestClientContext.Company.Select(c => new Company {
                CompanyID = c.CompanyID, VipCustomer = c.VipCustomer
            }) as DataServiceQuerySingle <Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company        = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.VipCustomer != null);

            this.EnqueueTestComplete();
        }
        public void SingletonQueryUpdateNavigationCollectionPropertyClientTest()
        {
            TestClientContext = this.CreateWrappedContext<InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            var queryCompany = TestClientContext.Company as DataServiceQuerySingle<Company>;
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            var company = queryCompany.EndGetValue(queryCompanyAr);

            //Load Navigation Property
            var loadDeparments = TestClientContext.BeginLoadProperty(company, "Departments", null, null).EnqueueWait(this);
            TestClientContext.EndLoadProperty(loadDeparments);
            Assert.IsTrue(company.Departments.Count > 0);

            //Add Navigation Property - Collection
            Random rand = new Random();
            int tmpDepartmentID = rand.Next();
            Department department = new Department()
            {
                DepartmentID = tmpDepartmentID,
                Name = "ID" + tmpDepartmentID
            };
            TestClientContext.AddToDepartments(department);
            TestClientContext.AddLink(company, "Departments", department);
            var addDepartmentsLink = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(addDepartmentsLink);

            //Projection with Navigation properties - Select
            var selectCompany = TestClientContext.Company.Select(c => new Company { CompanyID = c.CompanyID, Departments = c.Departments }) as DataServiceQuerySingle<Company>;
            var selectCompanyAr = selectCompany.BeginGetValue(null, null).EnqueueWait(this);
            var projectedCompany = selectCompany.EndGetValue(selectCompanyAr);
            Assert.IsTrue(projectedCompany.Departments.Any(c => c.DepartmentID == tmpDepartmentID));

            //Update EntitySet's Navigation Property - Singleton 
            TestClientContext.SetLink(department, "Company", company);
            var ar4 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar4);

            //Query(Expand) EntitySet's Navigation Property - Singleton
            var queryDepartment = TestClientContext.Departments.Expand(d => d.Company).Where(d => d.DepartmentID == tmpDepartmentID) as DataServiceQuery<Department>;
            var queryDepartmentAr = queryDepartment.BeginExecute(null, null).EnqueueWait(this);
            department = queryDepartment.EndExecute(queryDepartmentAr).SingleOrDefault();
            Assert.IsTrue(department.Company.CompanyID == company.CompanyID);

            //Delete Navigation Property - EntitySet
            TestClientContext.DeleteLink(company, "Departments", department);
            var deleteLinkAr = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(deleteLinkAr);

            //Expand Navigation Property - EntitySet
            queryCompany = TestClientContext.Company.Expand("Departments");
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(!company.Departments.Any(c => c.DepartmentID == tmpDepartmentID));

            this.EnqueueTestComplete();
        }
        public void SingletonQueryUpdateNavigationSingleEntityPropertyClientTest()
        {
            TestClientContext = this.CreateWrappedContext<InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            Company company = null;
            var queryCompany = TestClientContext.Company.Expand("CoreDepartment");
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.CoreDepartment != null);

            //Single Entity
            company.CoreDepartment = null;
            var ar15 = TestClientContext.BeginLoadProperty(company, "CoreDepartment", null, null).EnqueueWait(this);
            TestClientContext.EndLoadProperty(ar15);
            Assert.IsTrue(company.CoreDepartment != null);

            Random rand = new Random();
            int tmpCoreDepartmentID = rand.Next();
            Department coreDepartment = new Department()
            {
                DepartmentID = tmpCoreDepartmentID,
                Name = "ID" + tmpCoreDepartmentID
            };

            TestClientContext.AddToDepartments(coreDepartment);
            TestClientContext.AddLink(company, "Departments", coreDepartment);
            var ar1 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar1);

            //Update Navigation Property - Single Entity
            TestClientContext.SetLink(company, "CoreDepartment", coreDepartment);
            var ar3 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar3);

            //Projection with Navigation properties - Select
            queryCompany = TestClientContext.Company.Select(c => new Company { CompanyID = c.CompanyID, CoreDepartment = c.CoreDepartment }) as DataServiceQuerySingle<Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.CoreDepartment.DepartmentID == tmpCoreDepartmentID);
            this.EnqueueTestComplete();
        }
        public void SingletonQueryUpdateNavigationSingletonPropertyClientTest()
        {
            TestClientContext = this.CreateWrappedContext<InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            var queryCompany = TestClientContext.Company as DataServiceQuerySingle<Company>;
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            var company = queryCompany.EndGetValue(queryCompanyAr);

            //Query Singleton again with Execute
            var queryVipCustomerAr = TestClientContext.BeginExecute<Customer>(new Uri("VipCustomer", UriKind.Relative), null, null).EnqueueWait(this);
            var vipCustomer = TestClientContext.EndExecute<Customer>(queryVipCustomerAr).Single();
            Assert.IsTrue(vipCustomer != null);

            //Update Singleton's Navigation property - Singleton
            vipCustomer.City = "UpdatedCity";
            TestClientContext.UpdateRelatedObject(company, "VipCustomer", vipCustomer);
            var ar6 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar6);

            //Expand Navigation Property - Singleton
            company.VipCustomer = null;
            queryCompany = TestClientContext.Company.Expand(c => c.VipCustomer);
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.VipCustomer.City == "UpdatedCity");

            //Update Navigation Property - Delete the Singleton navigation
            TestClientContext.SetLink(company, "VipCustomer", null);
            var ar7 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar7);

            //Expand Navigation Property using name- Singleton
            company.VipCustomer = null;
            queryCompany = TestClientContext.Company.Expand("VipCustomer");
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.VipCustomer == null);

            //Update Navigation Property - Singleton
            TestClientContext.SetLink(company, "VipCustomer", vipCustomer);
            var ar8 = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(ar8);

            //LoadProperty Navigation Property - Singleton
            company.VipCustomer = null;
            var ar13 = TestClientContext.BeginLoadProperty(company, "VipCustomer", null, null).EnqueueWait(this);
            TestClientContext.EndLoadProperty(ar13);
            Assert.IsTrue(company.VipCustomer != null);

            //Expand Navigation Property - Singleton
            company.VipCustomer = null;
            queryCompany = TestClientContext.Company.Expand(c => c.VipCustomer);
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.VipCustomer != null);

            //Query Singleton's Navigation Property - Singleton
            queryCompany = TestClientContext.Company.Select(c => new Company { CompanyID = c.CompanyID, VipCustomer = c.VipCustomer }) as DataServiceQuerySingle<Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.VipCustomer != null);

            this.EnqueueTestComplete();
        }