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

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

            Assert.True(company != null);

            //Update Singleton Property and Verify
            company.CompanyCategory = CompanyCategory.Communication;
            company.Name            = "UpdatedName";
            company.Address.City    = "UpdatedCity";
            TestClientContext.UpdateObject(company);
            var updateCompanyAr = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);

            TestClientContext.EndSaveChanges(updateCompanyAr);

            //Query Singleton Property - Select
            var             queryCompanyCategory   = TestClientContext.Company.Select(c => c.CompanyCategory) as DataServiceQuerySingle <CompanyCategory?>;
            CompanyCategory?companyCategory        = CompanyCategory.Others;
            var             queryCompanyCategoryAr = queryCompanyCategory.BeginGetValue(null, null).EnqueueWait(this);

            companyCategory = queryCompanyCategory.EndGetValue(queryCompanyCategoryAr);
            Assert.True(companyCategory == CompanyCategory.Communication);

            var queryCity   = TestClientContext.CreateQuery <string>("Company/Address/City");
            var queryCityAr = queryCity.BeginExecute(null, null);
            var city        = queryCity.EndExecute(queryCityAr).Single();

            this.EnqueueCallback(() => Assert.True(city == "UpdatedCity"));

            var queryNameAr = TestClientContext.BeginExecute <string>(new Uri("Company/Name", UriKind.Relative), null, null).EnqueueWait(this);
            var name        = TestClientContext.EndExecute <string>(queryNameAr).Single();

            Assert.True(name == "UpdatedName");

            //Projection with properties - Select
            this.TestCompleted = false;
            queryCompany       = TestClientContext.Company.Select(c => new Company {
                CompanyID = c.CompanyID, Address = c.Address, Name = c.Name
            }) as DataServiceQuerySingle <Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null);
            company        = queryCompany.EndGetValue(queryCompanyAr);
            Assert.True(company.Name == "UpdatedName");
            Assert.True(company.Departments.Count == 0);
            this.EnqueueTestComplete();
        }
        public void SingletonQueryUpdatePropertyClientTest()
        {
            TestClientContext = this.CreateWrappedContext<InMemoryEntities>().Context;
            TestClientContext.MergeOption = Microsoft.OData.Client.MergeOption.OverwriteChanges;

            //Query Singleton            
            var queryCompany = TestClientContext.Company as DataServiceQuerySingle<Company>;
            var queryCompanyAr = queryCompany.BeginGetValue(null, null).EnqueueWait(this);
            var company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company != null);

            //Update Singleton Property and Verify
            company.CompanyCategory = CompanyCategory.Communication;
            company.Name = "UpdatedName";
            company.Address.City = "UpdatedCity";
            TestClientContext.UpdateObject(company);
            var updateCompanyAr = TestClientContext.BeginSaveChanges(null, null).EnqueueWait(this);
            TestClientContext.EndSaveChanges(updateCompanyAr);

            //Query Singleton Property - Select
            var queryCompanyCategory = TestClientContext.Company.Select(c => c.CompanyCategory) as DataServiceQuerySingle<CompanyCategory?>;
            CompanyCategory? companyCategory = CompanyCategory.Others;
            var queryCompanyCategoryAr = queryCompanyCategory.BeginGetValue(null, null).EnqueueWait(this);
            companyCategory = queryCompanyCategory.EndGetValue(queryCompanyCategoryAr);
            Assert.IsTrue(companyCategory == CompanyCategory.Communication);

            var queryCity = TestClientContext.CreateQuery<string>("Company/Address/City");
            var queryCityAr = queryCity.BeginExecute(null, null);
            var city = queryCity.EndExecute(queryCityAr).Single();
            this.EnqueueCallback(() => Assert.IsTrue(city == "UpdatedCity"));

            var queryNameAr = TestClientContext.BeginExecute<string>(new Uri("Company/Name", UriKind.Relative), null, null).EnqueueWait(this);
            var name = TestClientContext.EndExecute<string>(queryNameAr).Single();
            Assert.IsTrue(name == "UpdatedName");

            //Projection with properties - Select
            this.TestCompleted = false;
            queryCompany = TestClientContext.Company.Select(c => new Company { CompanyID = c.CompanyID, Address = c.Address, Name = c.Name }) as DataServiceQuerySingle<Company>;
            queryCompanyAr = queryCompany.BeginGetValue(null, null);
            company = queryCompany.EndGetValue(queryCompanyAr);
            Assert.IsTrue(company.Name == "UpdatedName");
            Assert.IsTrue(company.Departments.Count == 0);
            this.EnqueueTestComplete();
        }
Ejemplo 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 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();
        }