Пример #1
0
        /// <summary>
        /// Initializes the <see cref="HttpMessageBindingElement"/> from an
        /// <see cref="System.ServiceModel.HttpMessageBinding">HttpMessageBinding</see> instance.
        /// </summary>
        /// <param name="binding">
        /// The <see cref="System.ServiceModel.HttpMessageBinding">HttpMessageBinding</see> instance from which
        /// the <see cref="HttpMessageBindingElement"/> will be initialized.
        /// </param>
        protected override void InitializeFrom(Binding binding)
        {
            base.InitializeFrom(binding);
            HttpMessageBinding httpMessageBinding = (HttpMessageBinding)binding;

            if (httpMessageBinding.HostNameComparisonMode != HttpTransportDefaults.HostNameComparisonModeDefault)
            {
                this.HostNameComparisonMode = httpMessageBinding.HostNameComparisonMode;
            }

            if (httpMessageBinding.MaxBufferSize != TransportDefaults.MaxBufferSize)
            {
                this.MaxBufferSize = httpMessageBinding.MaxBufferSize;
            }

            if (httpMessageBinding.MaxBufferPoolSize != TransportDefaults.MaxBufferPoolSize)
            {
                this.MaxBufferPoolSize = httpMessageBinding.MaxBufferPoolSize;
            }

            if (httpMessageBinding.MaxReceivedMessageSize != TransportDefaults.MaxReceivedMessageSize)
            {
                this.MaxReceivedMessageSize = httpMessageBinding.MaxReceivedMessageSize;
            }

            if (httpMessageBinding.TransferMode != HttpTransportDefaults.TransferModeDefault)
            {
                this.TransferMode = httpMessageBinding.TransferMode;
            }

            this.Security.InitializeFrom(httpMessageBinding.Security);
        }
        public void HttpTransportBindingElement_ProxyAuthenticationScheme_Is_Anonymous_By_Default()
        {
            HttpMessageBinding          binding   = new HttpMessageBinding();
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.AreEqual(AuthenticationSchemes.Anonymous, transport.ProxyAuthenticationScheme, "HttpTransportBindingElement.ProxyAuthenticationScheme should have been AuthenticationSchemes.Anonymous by default.");
        }
        public void MaxReceivedMessageSize_Can_Be_Set()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.MaxReceivedMessageSize = 100;
            Assert.AreEqual(100, binding.MaxReceivedMessageSize, "HttpMessageBinding.MaxReceivedMessageSize should have been 100.");
        }
        public void HttpsTransportBindingElement_RequireClientCertificate_Is_False_By_Default()
        {
            HttpMessageBinding           binding   = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);
            HttpsTransportBindingElement transport = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.IsFalse(transport.RequireClientCertificate, "HttpsTransportBindingElement.RequireClientCertificate should have been 'false' by default.");
        }
        public void HttpTransportBindingElement_Realm_Is_Empty_String_By_Default()
        {
            HttpMessageBinding          binding   = new HttpMessageBinding();
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.AreEqual(string.Empty, transport.Realm, "HttpTransportBindingElement.Realm should have been an empty string by default.");
        }
        public void Setting_MaxBufferSize_Configures_The_HttpTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.MaxBufferSize = 100;
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.AreEqual(100, transport.MaxBufferSize, "HttpTransportBindingElement.MaxBufferSize should have been 100.");
        }
        public void Setting_HostNameComparisonMode_Configures_The_HttpsTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);

            binding.HostNameComparisonMode = HostNameComparisonMode.Exact;
            HttpsTransportBindingElement transport = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.AreEqual(HostNameComparisonMode.Exact, transport.HostNameComparisonMode, "HttpsTransportBindingElement.HostNameComparisonMode should have been HostNameComparisonMode.Exact.");
        }
        public void Setting_MaxReceivedMessageSize_Configures_The_HttpsTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);

            binding.MaxReceivedMessageSize = 100;
            HttpsTransportBindingElement transport = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.AreEqual(100, transport.MaxReceivedMessageSize, "HttpsTransportBindingElement.MaxReceivedMessageSize should have been 100.");
        }
        public void Setting_TransferMode_Configures_The_HttpsTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);

            binding.TransferMode = TransferMode.StreamedRequest;
            HttpsTransportBindingElement transport = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.AreEqual(TransferMode.StreamedRequest, transport.TransferMode, "HttpsTransportBindingElement.TransferMode should have been TransferMode.StreamedRequest.");
        }
        public void Setting_Security_Transport_ProxyCredentialType_Configures_The_HttpTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.TransportCredentialOnly);

            binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic;
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.AreEqual(AuthenticationSchemes.Basic, transport.ProxyAuthenticationScheme, "HttpTransportBindingElement.ProxyAuthenticationScheme should have been AuthenticationSchemes.Basic.");
        }
        public void Setting_Security_Transport_Realm_Configures_The_HttpTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.TransportCredentialOnly);

            binding.Security.Transport.Realm = "SomeRealm";
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.AreEqual("SomeRealm", transport.Realm, "HttpTransportBindingElement.Realm should have been 'SomeRealm'.");
        }
        public void Setting_Security_Transport_ClientCredentialType_Certificate_Configures_The_HttpsTransportBindingElement()
        {
            HttpMessageBinding binding = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);

            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
            HttpsTransportBindingElement transport = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.IsTrue(transport.RequireClientCertificate, "HttpsTransportBindingElement.RequireClientCertificate should have been 'true'.");
        }
 public void HttpMessageBinding_Throws_With_Null_ConfigurationName_Parameter()
 {
     ExceptionAssert.ThrowsArgumentNull(
         "The HttpMessageBinding should have thrown since the configurationName parameter was null.",
         "configurationName",
         () =>
     {
         HttpMessageBinding binding = new HttpMessageBinding((string)null);
     });
 }
        public void Namespace_Can_Be_Set()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.Namespace = "http://SomeNamespace.org/";
            Assert.AreEqual("http://SomeNamespace.org/", binding.Namespace, "HttpMessageBinding.Namespace should have been 'http://SomeNamespace.org/'.");

            binding.Namespace = string.Empty;
            Assert.AreEqual(string.Empty, binding.Namespace, "HttpMessageBinding.Namespace should have been an empty string.");
        }
        public void Name_Can_Be_Set()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.Name = "SomeName";
            Assert.AreEqual("SomeName", binding.Name, "HttpMessageBinding.Name should have been 'SomeName'.");

            binding.Name = " ";
            Assert.AreEqual(" ", binding.Name, "HttpMessageBinding.Name should have been ' '.");
        }
        public void HostNameComparisonMode_Can_Be_Set()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.HostNameComparisonMode = HostNameComparisonMode.Exact;
            Assert.AreEqual(HostNameComparisonMode.Exact, binding.HostNameComparisonMode, "HttpMessageBinding.HostNameComparisonMode should have been HostNameComparisonMode.Exact.");

            binding.HostNameComparisonMode = HostNameComparisonMode.WeakWildcard;
            Assert.AreEqual(HostNameComparisonMode.WeakWildcard, binding.HostNameComparisonMode, "HttpMessageBinding.HostNameComparisonMode should have been HostNameComparisonMode.WeakWildcard.");
        }
 public void HttpMessageBinding_Throws_With_Invalid_HttpMessageBindingSecurityMode_Parameter()
 {
     ExceptionAssert.Throws(
         typeof(System.ComponentModel.InvalidEnumArgumentException),
         "The HttpMessageBinding should have thrown since HttpMessageBindingSecurityMode is not a valid value.",
         () =>
     {
         HttpMessageBinding binding = new HttpMessageBinding((HttpMessageBindingSecurityMode)99);
     });
 }
        public void CreateBindingElements_Contains_HttpTransportBindingElement_And_HttpMessageEncodingBindingElement_By_Default()
        {
            HttpMessageBinding          binding   = new HttpMessageBinding();
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.IsNotNull(transport, "The HttpMessageBinding.CreateBindingElements should have returned a collection with HttpTransportBindingElement.");

            HttpMessageEncodingBindingElement encoder = binding.CreateBindingElements().Find <HttpMessageEncodingBindingElement>();

            Assert.IsNotNull(encoder, "The HttpMessageBinding.CreateBindingElements should have returned a collection with HttpMessageEncodingBindingElement.");
        }
        public void CreateBindingElements_Contains_HttpTransportBindingElement_And_HttpMessageEncodingBindingElement_With_CredentialOnly_Security_Mode()
        {
            HttpMessageBinding          binding   = new HttpMessageBinding(HttpMessageBindingSecurityMode.TransportCredentialOnly);
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.IsNotNull(transport, "The HttpMessageBinding.CreateBindingElements should have returned a collection with HttpTransportBindingElement.");

            HttpMessageEncodingBindingElement encoder = binding.CreateBindingElements().Find <HttpMessageEncodingBindingElement>();

            Assert.IsNotNull(encoder, "The HttpMessageBinding.CreateBindingElements should have returned a collection with HttpMessageEncodingBindingElement.");
        }
        public void Setting_Name_To_Null_Throws()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            ExceptionAssert.Throws(
                typeof(ArgumentException),
                "Setting HttpMessageBinding.Name to null should have thrown.",
                () =>
            {
                binding.Name = null;
            });
        }
        public void Setting_Name_Empty_String_Throws()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            ExceptionAssert.Throws(
                typeof(ArgumentException),
                "Setting HttpMessageBinding.Name to empty string should have thrown.",
                () =>
            {
                binding.Name = string.Empty;
            });
        }
        public void Setting_Namespace_To_Null_Throws()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            ExceptionAssert.ThrowsArgumentNull(
                "Setting HttpMessageBinding.Namespace to null should have thrown.",
                "value",
                () =>
            {
                binding.Namespace = null;
            });
        }
        public void HostNameComparisonMode_Throws_If_Set_To_Invalid_Value()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            ExceptionAssert.Throws(
                typeof(System.ComponentModel.InvalidEnumArgumentException),
                "The HttpMessageBinding should have thrown since HostNameComparisonMode is not a valid value.",
                () =>
            {
                binding.HostNameComparisonMode = (HostNameComparisonMode)99;
            });
        }
        public void TransferMode_Can_Be_Set()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            binding.TransferMode = TransferMode.Streamed;
            Assert.AreEqual(TransferMode.Streamed, binding.TransferMode, "HttpMessageBinding.TransferMode should have been TransferMode.Streamed.");

            binding.TransferMode = TransferMode.StreamedRequest;
            Assert.AreEqual(TransferMode.StreamedRequest, binding.TransferMode, "HttpMessageBinding.TransferMode should have been TransferMode.StreamedRequest.");

            binding.TransferMode = TransferMode.StreamedResponse;
            Assert.AreEqual(TransferMode.StreamedResponse, binding.TransferMode, "HttpMessageBinding.TransferMode should have been TransferMode.StreamedResponse.");
        }
        public void Security_Throws_If_Set_To_Null()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            Assert.IsNotNull(binding.Security, "HttpMessageBinding.Security should never by null.");

            ExceptionAssert.ThrowsArgumentNull(
                "HttpMessageBinding.Security should have thrown when set to null.",
                "value",
                () =>
            {
                binding.Security = null;
            });
        }
        public void CreateBindingElements_Count_Is_Always_Two()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            Assert.AreEqual(2, binding.CreateBindingElements().Count, "The HttpMessageBinding should always have two binding elements.");

            HttpMessageBinding bindingWithSecurity = new HttpMessageBinding(HttpMessageBindingSecurityMode.Transport);

            Assert.AreEqual(2, bindingWithSecurity.CreateBindingElements().Count, "The HttpMessageBinding should always have two binding elements.");

            HttpMessageBinding bindingWithSecurity2 = new HttpMessageBinding(HttpMessageBindingSecurityMode.TransportCredentialOnly);

            Assert.AreEqual(2, bindingWithSecurity2.CreateBindingElements().Count, "The HttpMessageBinding should always have two binding elements.");
        }
        public void HttpTransportBindingElement_ManualAddressing_Is_True()
        {
            HttpMessageBinding          binding   = new HttpMessageBinding();
            HttpTransportBindingElement transport = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.IsTrue(transport.ManualAddressing, "HttpTransportBindingElement.ManualAddressing should have been 'true'.");

            binding.Security.Mode = HttpMessageBindingSecurityMode.Transport;
            HttpsTransportBindingElement transport2 = binding.CreateBindingElements().Find <HttpsTransportBindingElement>();

            Assert.IsTrue(transport2.ManualAddressing, "HttpsTransportBindingElement.ManualAddressing should have been 'true'.");

            binding.Security.Mode = HttpMessageBindingSecurityMode.TransportCredentialOnly;
            HttpTransportBindingElement transport3 = binding.CreateBindingElements().Find <HttpTransportBindingElement>();

            Assert.IsTrue(transport3.ManualAddressing, "HttpTransportBindingElement.ManualAddressing should have been 'true'.");
        }
Пример #28
0
        /// <summary>
        /// Applies the configuration of the the <see cref="HttpMessageBindingElement"/> to the given
        /// <see cref="System.ServiceModel.HttpMessageBinding">HttpMessageBinding</see> instance.
        /// </summary>
        /// <param name="binding">The <see cref="System.ServiceModel.HttpMessageBinding">HttpMessageBinding</see>
        /// instance to which the <see cref="HttpMessageBindingElement"/> configuration will be applied.
        /// </param>
        protected override void OnApplyConfiguration(Binding binding)
        {
            HttpMessageBinding httpMessageBinding = (HttpMessageBinding)binding;

            httpMessageBinding.HostNameComparisonMode = this.HostNameComparisonMode;
            httpMessageBinding.MaxBufferPoolSize      = this.MaxBufferPoolSize;
            httpMessageBinding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
            httpMessageBinding.TransferMode           = this.TransferMode;

            PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;

            if (propertyInfo[MaxBufferSizeString].ValueOrigin != PropertyValueOrigin.Default)
            {
                httpMessageBinding.MaxBufferSize = this.MaxBufferSize;
            }

            this.Security.ApplyConfiguration(httpMessageBinding.Security);
        }
        public void HostNameComparisonMode_Is_StrongWildcard_By_Default()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            Assert.AreEqual(HostNameComparisonMode.StrongWildcard, binding.HostNameComparisonMode, "HttpMessageBinding.HostNameComparisonMode should have been HostNameComparisonMode.StrongWildcard by default.");
        }
        public void EnvelopeVersion_Is_Always_None()
        {
            HttpMessageBinding binding = new HttpMessageBinding();

            Assert.AreEqual(EnvelopeVersion.None, binding.EnvelopeVersion, "HttpMessageBinding.EnvelopeVersion should always be EnvelopeVersion.None.");
        }