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 Task PutAndGetShouldReturnSameEntityJsonLight(string acceptHeader)
        {
            var entity = new UniverseEntity()
            {
                ID = "1",
                OptionalComplexProperty = null,
                //string1 = @"""[t@xt""",
                //string2 = @"""'[t@xt""",
                //string3 =  @"""}t@xt{""",
                //string4 = @"""[t@xt'',,][']other::]mo}{retext""",
                //number10 = 10,
                //number10point5 = 10.5M,
                //number10e25 = 10e25M,
                //boolean_true = true,
                //boolean_false = false
            };

            AcceptHeader = acceptHeader;
            return(PostAndGetShouldReturnSameEntity(entity));
        }