public void TestingAQueryWithVersioning()
        {
            string bucket = Guid.NewGuid().ToString();

            PutBucketRequestECS pbr = new PutBucketRequestECS()
            {
                BucketName = bucket,
            };

            pbr.SetMetadataSearchKeys(bucketMetadataSearchKeys);

            client.PutBucket(pbr);

            PutBucketVersioningRequest pbv = new PutBucketVersioningRequest()
            {
                BucketName       = bucket,
                VersioningConfig = new S3BucketVersioningConfig()
                {
                    Status = VersionStatus.Enabled
                }
            };

            client.PutBucketVersioning(pbv);

            for (int i = 0; i < 5; i++)
            {
                PutObjectRequest object_request = new PutObjectRequest()
                {
                    BucketName  = bucket,
                    Key         = string.Format("obj-{0}", i),
                    ContentBody = string.Format("This is sample content for object {0}.", i)
                };

                object_request.Metadata.Add("x-amz-meta-decimalvalue", Convert.ToString(i * 2));
                object_request.Metadata.Add("x-amz-meta-stringvalue", string.Format("sample-{0}", Convert.ToString(i)));

                client.PutObject(object_request);

                object_request.ContentBody = string.Format("This is sample content for object {0} after versioning has been enabled.", i);

                client.PutObject(object_request);
            }

            QueryObjectsRequest qor = new QueryObjectsRequest()
            {
                BucketName           = bucket,
                IncludeOlderVersions = true,
                Query = "x-amz-meta-decimalvalue>4"
            };

            var qor_respose = client.QueryObjects(qor);

            Assert.IsNotNull(qor_respose.ObjectMatches);
            Assert.AreEqual(4, qor_respose.ObjectMatches.Count);
            Assert.AreEqual(bucket, qor_respose.BucketName);

            CleanBucket(bucket);

            client.DeleteBucket(bucket);
        }