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(); }
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(); }
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(); }