public async Task ShouldSupportDerivedComplexTypeAsync() { var settings = new CreatorSettings() { NullValueProbability = 0.0 }; var uri = new Uri(this.BaseAddress); var entitySetName = "ComplexTypeTests_Entity"; // clear respository await this.ClearRepositoryAsync("ComplexTypeTests_Entity"); var rand = new Random(RandomSeedGenerator.GetRandomSeed()); // post new entity to repository var baseline = InstanceCreator.CreateInstanceOf <ComplexTypeTests_Entity>(rand, settings); await PostNewEntityAsync(uri, entitySetName, baseline); int id = baseline.ID; var actual = (await GetEntitiesAsync(uri, entitySetName)).Where(t => t.ID == id).First(); AssertExtension.DeepEqual(baseline, actual); await UpdateEntityAsync(uri, entitySetName, actual, data => { data.ComplexType = InstanceCreator.CreateInstanceOf <ComplexTypeTests_ComplexType>(rand, settings); }); var afterUpdate = (await GetEntitiesAsync(uri, entitySetName)).Where(t => t.ID == id).First(); AssertExtension.DeepEqual(actual, afterUpdate); }
protected async Task PostAndGetShouldReturnSameEntity(UniverseEntity entity) { var uri = new Uri(this.BaseAddress); const string entitySetName = "UniverseEntity"; await this.ClearRepositoryAsync(entitySetName); var ctx = WriterClient(uri, ODataProtocolVersion.V4); ctx.AddObject(entitySetName, entity); await ctx.SaveChangesAsync(); // get collection of entities from repository ctx = ReaderClient(uri, ODataProtocolVersion.V4); DataServiceQuery <UniverseEntity> query = ctx.CreateQuery <UniverseEntity>(entitySetName); var entities = await Task.Factory.FromAsync(query.BeginExecute(null, null), (asyncResult) => { return(query.EndExecute(asyncResult)); }); var beforeUpdate = entities.ToList().First(); AssertExtension.DeepEqual(entity, beforeUpdate); // clear repository await this.ClearRepositoryAsync(entitySetName); }
public void PostAndGetShouldReturnSameEntity(UniverseEntity entity) { var uri = new Uri(this.BaseAddress); const string entitySetName = "UniverseEntity"; this.ClearRepository(entitySetName); var ctx = WriterClient(uri, ODataProtocolVersion.V4); ctx.AddObject(entitySetName, entity); ctx.SaveChangesAsync().Wait(); // get collection of entities from repository ctx = ReaderClient(uri, ODataProtocolVersion.V4); DataServiceQuery <UniverseEntity> query = ctx.CreateQuery <UniverseEntity>(entitySetName); IAsyncResult asyncResult = query.BeginExecute(null, null); asyncResult.AsyncWaitHandle.WaitOne(); var entities = query.EndExecute(asyncResult); var beforeUpdate = entities.ToList().First(); AssertExtension.DeepEqual(entity, beforeUpdate); // clear repository this.ClearRepository(entitySetName); }
public async Task SupportPostCollectionPropertyByEntityPayload() { var settings = new CreatorSettings() { NullValueProbability = 0.0 }; var uri = new Uri(this.BaseAddress); var entitySetName = "CollectionProperty_Entity"; // clear respository this.ClearRepository("CollectionProperty_Entity"); var rand = new Random(RandomSeedGenerator.GetRandomSeed()); // post new entity to repository var baseline = InstanceCreator.CreateInstanceOf <CollectionProperty_Entity>(rand, settings); await PostNewEntityAsync(uri, entitySetName, baseline); int id = baseline.ID; var actual = (await GetEntitiesAsync(uri, entitySetName)).Where(t => t.ID == id).First(); AssertExtension.DeepEqual(baseline, actual); await UpdateEntityAsync(uri, entitySetName, actual, data => { data.StringList = InstanceCreator.CreateInstanceOf <List <string> >(rand, settings); data.ComplexTypeCollection = InstanceCreator.CreateInstanceOf <Collection <CollectionProperty_ComplexType> >(rand, settings); }); var afterUpdate = (await GetEntitiesAsync(uri, entitySetName)).Where(t => t.ID == id).First(); AssertExtension.DeepEqual(actual, afterUpdate); }
public void SupportPostCollectionPropertyByEntityPayload() { CreatorSettings settings = new CreatorSettings() { NullValueProbability = 0.0 }; // clear respository this.ClearRepository("CollectionProperty_Entity"); //this.Client.GetStringAsync(this.BaseAddress + "/$metadata").Wait(); Random r = new Random(RandomSeedGenerator.GetRandomSeed()); // post new entity to repository var expected = InstanceCreator.CreateInstanceOf <CollectionProperty_Entity>(r, settings); DataServiceContext ctx = WriterClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); ctx.AddObject("CollectionProperty_Entity", expected); ctx.SaveChanges(); int id = expected.ID; ctx = ReaderClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); var actual = ctx.CreateQuery <CollectionProperty_Entity>("CollectionProperty_Entity").Where(t => t.ID == id).First(); AssertExtension.DeepEqual(expected, actual); expected = actual; ctx = WriterClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); ctx.AttachTo("CollectionProperty_Entity", expected); expected.StringList = InstanceCreator.CreateInstanceOf <List <string> >(r, settings); expected.ComplexTypeCollection = InstanceCreator.CreateInstanceOf <Collection <CollectionProperty_ComplexType> >(r, settings); ctx.UpdateObject(expected); ctx.SaveChanges(); ctx = ReaderClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); actual = ctx.CreateQuery <CollectionProperty_Entity>("CollectionProperty_Entity").Where(t => t.ID == id).First(); AssertExtension.DeepEqual(expected, actual); // clear respository this.ClearRepository("CollectionProperty_Entity"); }
public void PostAndGetShouldReturnSameEntity(UniverseEntity entity) { var entitySetName = "UniverseEntity"; // clear respository this.ClearRepository(entitySetName); DataServiceContext ctx = WriterClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); ctx.AddObject(entitySetName, entity); ctx.SaveChanges(); // get collection of entities from repository ctx = ReaderClient(new Uri(this.BaseAddress), DataServiceProtocolVersion.V3); IEnumerable <UniverseEntity> entities = ctx.CreateQuery <UniverseEntity>(entitySetName); var beforeUpdate = entities.ToList().First(); AssertExtension.DeepEqual(entity, beforeUpdate); // clear repository this.ClearRepository(entitySetName); }