/// <summary>
        /// Create message reader settings for consuming responses.
        /// </summary>
        /// <returns>Newly created message reader settings.</returns>
        internal ODataMessageReaderSettings CreateSettings()
        {
            ODataMessageReaderSettings settings = new ODataMessageReaderSettings();
#if !DNXCORE50
            if (this.responseInfo.Context.EnableAtom)
            {
                // Enable ATOM in client
                settings.EnableAtomSupport();
            }
#endif
            Func<IEdmType, string, IEdmType> resolveWireTypeName = this.responseInfo.TypeResolver.ResolveWireTypeName;
            if (this.responseInfo.Context.Format.ServiceModel != null)
            {
                resolveWireTypeName = null;
            }

            settings.EnableWcfDataServicesClientBehavior(resolveWireTypeName);

            settings.BaseUri = this.responseInfo.BaseUriResolver.BaseUriOrNull;
            settings.ODataSimplified = this.responseInfo.Context.ODataSimplified;
            settings.UndeclaredPropertyBehaviorKinds = ODataUndeclaredPropertyBehaviorKinds.ReportUndeclaredLinkProperty;
            settings.MaxProtocolVersion = CommonUtil.ConvertToODataVersion(this.responseInfo.MaxProtocolVersion);
            if (this.responseInfo.IgnoreMissingProperties)
            {
                settings.UndeclaredPropertyBehaviorKinds |= ODataUndeclaredPropertyBehaviorKinds.IgnoreUndeclaredValueProperty;
            }

            if (this.responseInfo.Context.UrlConventions == DataServiceUrlConventions.KeyAsSegment)
            {
                settings.UseKeyAsSegment = true;
            }

            CommonUtil.SetDefaultMessageQuotas(settings.MessageQuotas);

            this.responseInfo.ResponsePipeline.ExecuteReaderSettingsConfiguration(settings);
            return settings;
        }
        public void SetBehaviorTest()
        {
            ODataMessageReaderSettings settings = new ODataMessageReaderSettings();

            settings.EnableWcfDataServicesClientBehavior(null);
            this.CompareReaderBehavior(
                settings,
                /*formatBehaviorKind*/ODataBehaviorKind.WcfDataServicesClient,
                /*apiBehaviorKind*/ODataBehaviorKind.WcfDataServicesClient,
                true,
                /*typeResolver*/ null);

            Func<IEdmType, string, IEdmType> customTypeResolver = (expectedType, typeName) => expectedType;
            settings.EnableWcfDataServicesClientBehavior(customTypeResolver);
            this.CompareReaderBehavior(
                settings,
                /*formatBehaviorKind*/ODataBehaviorKind.WcfDataServicesClient,
                /*apiBehaviorKind*/ODataBehaviorKind.WcfDataServicesClient,
                true,
                customTypeResolver);

            settings.EnableODataServerBehavior();
            this.CompareReaderBehavior(
                settings,
                /*formatBehaviorKind*/ODataBehaviorKind.ODataServer,
                /*apiBehaviorKind*/ODataBehaviorKind.ODataServer,
                true,
                /*typeResolver*/ null);

            settings.EnableDefaultBehavior();
            this.CompareReaderBehavior(
                settings,
                /*formatBehaviorKind*/ODataBehaviorKind.Default,
                /*apiBehaviorKind*/ODataBehaviorKind.Default,
                false,
                /*typeResolver*/ null);
        }