/// <summary>
        /// Called to create the input message for the reader test.
        /// </summary>
        /// <param name="testConfiguration">The test configuration.</param>
        /// <returns>The newly created test message to use.</returns>
        protected override TestMessage CreateInputMessage(ReaderTestConfiguration testConfiguration)
        {
            MemoryStream memoryStream  = new MemoryStream(this.GetPayload(testConfiguration));
            TestStream   messageStream = new TestStream(memoryStream);

            if (testConfiguration.Synchronous)
            {
                messageStream.FailAsynchronousCalls = true;
            }
            else
            {
                messageStream.FailSynchronousCalls = true;
            }

            this.testMessage = TestReaderUtils.CreateInputMessageFromStream(
                messageStream,
                testConfiguration,
                /*payloadKind*/ null,
                this.ContentType,
                /*urlResolver*/ null);

            if (this.TestMessageWrapper != null)
            {
                this.testMessage = this.TestMessageWrapper(this.testMessage);
            }

            return(this.testMessage);
        }
        /// <summary>
        /// Called to create the input message for the reader test.
        /// </summary>
        /// <param name="testConfiguration">The test configuration.</param>
        /// <returns>The newly created test message to use.</returns>
        protected override TestMessage CreateInputMessage(ReaderTestConfiguration testConfiguration)
        {
            MemoryStream memoryStream = new MemoryStream();

            this.WriteInputMessageContent(testConfiguration, new TestStream(memoryStream, ignoreDispose: true));
            memoryStream.Seek(0, SeekOrigin.Begin);
            TestStream  messageStream = new TestStream(memoryStream);
            TestMessage testMessage   = TestReaderUtils.CreateInputMessageFromStream(
                messageStream,
                testConfiguration,
                this.PayloadKind,
                /*customContentTypeHeader*/ null,
                /*urlResolver*/ null);

            return(testMessage);
        }
示例#3
0
        /// <summary>
        /// Called to create the input message for the reader test.
        /// </summary>
        /// <param name="testConfiguration">The test configuration.</param>
        /// <returns>The newly created test message to use.</returns>
        protected override TestMessage CreateInputMessage(ReaderTestConfiguration testConfiguration)
        {
            MemoryStream memoryStream  = new MemoryStream(this.GetPayload(testConfiguration));
            TestStream   messageStream = new TestStream(memoryStream);

            if (testConfiguration.Synchronous)
            {
                messageStream.FailAsynchronousCalls = true;
            }
            else
            {
                messageStream.FailSynchronousCalls = true;
            }

            TestMessage testMessage = TestReaderUtils.CreateInputMessageFromStream(
                messageStream,
                testConfiguration,
                ODataPayloadKind.MetadataDocument,
                this.ContentType,
                /*urlResolver*/ null);

            return(testMessage);
        }
示例#4
0
        /// <summary>
        /// Creates the input message for the test descriptor
        /// </summary>
        /// <param name="testConfiguration">the test configuration to use</param>
        /// <param name="readerTestDescriptor">The test descriptor</param>
        /// <param name="settings">The test descriptor settings</param>
        /// <param name="applyPayloadTransformations">Whether or not to apply payload transformations</param>
        /// <returns>The message for the test</returns>
        public static TestMessage CreateInputMessage(ReaderTestConfiguration testConfiguration,
                                                     PayloadReaderTestDescriptor readerTestDescriptor,
                                                     PayloadReaderTestDescriptor.Settings settings,
                                                     bool?applyPayloadTransformations)
        {
            TestMessage testMessage;
            bool        originalApplyTransformValue = false;
            var         odataTransformFactory       = settings.PayloadTransformFactory as ODataLibPayloadTransformFactory;

            try
            {
                if (applyPayloadTransformations.HasValue && odataTransformFactory != null)
                {
                    originalApplyTransformValue          = odataTransformFactory.ApplyTransform;
                    odataTransformFactory.ApplyTransform = applyPayloadTransformations.Value;
                }

                if (readerTestDescriptor.TestDescriptorNormalizers != null)
                {
                    foreach (var testDescriptorNormalizer in readerTestDescriptor.TestDescriptorNormalizers)
                    {
                        var normalizerAction = testDescriptorNormalizer(testConfiguration);
                        if (normalizerAction != null)
                        {
                            normalizerAction(readerTestDescriptor);
                        }
                    }
                }

                MemoryStream memoryStream  = new MemoryStream(GetPayload(testConfiguration, readerTestDescriptor.PayloadNormalizers, settings, readerTestDescriptor.PayloadElement));
                TestStream   messageStream = new TestStream(memoryStream);
                if (testConfiguration.Synchronous)
                {
                    messageStream.FailAsynchronousCalls = true;
                }
                else
                {
                    messageStream.FailSynchronousCalls = true;
                }

                testMessage = TestReaderUtils.CreateInputMessageFromStream(
                    messageStream,
                    testConfiguration,
                    readerTestDescriptor.PayloadElement.GetPayloadKindFromPayloadElement(),
                    readerTestDescriptor.PayloadElement.GetCustomContentTypeHeader(), readerTestDescriptor.UrlResolver);

                if (readerTestDescriptor.TestMessageWrapper != null)
                {
                    testMessage = readerTestDescriptor.TestMessageWrapper(testMessage);
                }

                return(testMessage);
            }
            finally
            {
                if (applyPayloadTransformations.HasValue && odataTransformFactory != null)
                {
                    odataTransformFactory.ApplyTransform = originalApplyTransformValue;
                }
            }
        }