private void TestAndMeasure(string propertyType)
        {
            var entry     = GenerateEntry(propertyType);
            var entitySet = Model.EntityContainer.FindEntitySet(propertyType);

            foreach (var iteration in Benchmark.Iterations)
            {
                // Reuse the same stream
                WriteStream.Seek(0, SeekOrigin.Begin);

                using (iteration.StartMeasurement())
                {
                    using (var messageWriter = ODataMessageHelper.CreateMessageWriter(WriteStream, Model, ODataMessageKind.Response, isFullValidation: true))
                    {
                        ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet, entitySet.EntityType());
                        writer.WriteStart(new ODataResourceSet {
                            Id = new Uri("http://www.odata.org/Perf.svc")
                        });
                        for (int i = 0; i < NumberOfEntries; ++i)
                        {
                            writer.WriteStart(entry);
                            writer.WriteEnd();
                        }

                        writer.WriteEnd();
                        writer.Flush();
                    }
                }
            }
        }
Example #2
0
 public void RunReadFeedTest(bool isFullValidation)
 {
     using (var messageReader = ODataMessageHelper.CreateMessageReader(_stream, Model, ODataMessageKind.Response, isFullValidation))
     {
         ODataReader feedReader = messageReader.CreateODataResourceSetReader(TestEntitySet, TestEntityType);
         while (feedReader.Read())
         {
         }
     }
 }
 /// <summary>
 /// Reads feed from stream
 /// </summary>
 /// <param name="readStream"></param>
 /// <param name="edmModel"></param>
 /// <param name="entitySet"></param>
 /// <param name="expectedBaseEntityType"></param>
 protected void ReadFeed(Stream readStream, IEdmModel edmModel, IEdmEntitySetBase entitySet, IEdmEntityType expectedBaseEntityType)
 {
     readStream.Seek(0, SeekOrigin.Begin);
     using (var messageReader = ODataMessageHelper.CreateMessageReader(readStream, edmModel))
     {
         ODataReader feedReader = messageReader.CreateODataFeedReader(entitySet, expectedBaseEntityType);
         while (feedReader.Read())
         {
         }
     }
 }
        /// <summary>
        /// Writes an OData Feed with number <see cref="numberOfEntries"/> of entries <see cref="entry"/>
        /// </summary>
        /// <param name="writeStream"></param>
        /// <param name="edmModel"></param>
        /// <param name="numberOfEntries"></param>
        /// <param name="innerWrite"></param>
        /// <param name="entitySet"></param>
        /// <returns>The payload size</returns>
        protected Int64 WriteFeed(Stream writeStream, IEdmModel edmModel, long numberOfEntries, Action <ODataWriter> innerWrite, IEdmEntitySetBase entitySet)
        {
            using (var messageWriter = ODataMessageHelper.CreateMessageWriter(writeStream, edmModel))
            {
                ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet);
                writer.WriteStart(new ODataResourceSet {
                    Id = new Uri("http://www.odata.org/Perf.svc")
                });
                for (long i = 0; i < numberOfEntries; ++i)
                {
                    innerWrite(writer);
                }
                writer.WriteEnd();
                writer.Flush();
            }

            return(writeStream.Length); // return payload size
        }
Example #5
0
        public void WriteFeed()
        {
            using (var messageWriter = ODataMessageHelper.CreateMessageWriter(WriteStream, Model, ODataMessageKind.Response, isFullValidation: true))
            {
                ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet, entitySet.EntityType());
                writer.WriteStart(new ODataResourceSet {
                    Id = new Uri("http://www.odata.org/Perf.svc")
                });
                for (int i = 0; i < NumberOfEntries; ++i)
                {
                    writer.WriteStart(entry);
                    writer.WriteEnd();
                }

                writer.WriteEnd();
                writer.Flush();
            }
        }
Example #6
0
 private void ReadFeedTestAndMeasure(string templateFile, int entryCount, bool isFullValidation)
 {
     foreach (var iteration in Benchmark.Iterations)
     {
         using (var stream = new MemoryStream(PayloadGenerator.GenerateFeed(templateFile, entryCount)))
         {
             using (iteration.StartMeasurement())
             {
                 using (var messageReader = ODataMessageHelper.CreateMessageReader(stream, Model, ODataMessageKind.Response, isFullValidation))
                 {
                     ODataReader feedReader = messageReader.CreateODataResourceSetReader(TestEntitySet, TestEntityType);
                     while (feedReader.Read())
                     {
                     }
                 }
             }
         }
     }
 }