Example #1
0
        private void TestAmfBinding()
        {
            try
            {
                Configuration            servicesConfig = WebConfigurationManager.OpenWebConfiguration("~/services");
                ServiceModelSectionGroup serviceModel   = ServiceModelSectionGroup.GetSectionGroup(servicesConfig);
                BindingsSection          bindings       = serviceModel.Bindings;

                CustomBindingElement amfBinding = bindings.CustomBinding.Bindings.Cast <CustomBindingElement>().FirstOrDefault(cb => cb.Name == "amfBinding");
                if (amfBinding == null)
                {
                    MarkAsFail(AmfBindingLabel, "Custom binding with name=\"amfBinding\" not found.", null);
                    return;
                }

                string config       = File.ReadAllText(Server.MapPath("~/Content/swf/config/paths.properties"));
                bool   sfwUsesHttps = config.Replace(" ", string.Empty).Contains("gateway=https:");
                var    http         = amfBinding.FirstOrDefault(x => x is HttpTransportElement);
                var    https        = amfBinding.FirstOrDefault(x => x is HttpsTransportElement);
                if (sfwUsesHttps)
                {
                    if (https == null)
                    {
                        MarkAsFail(AmfBindingLabel, "httpsTransport section not found", "Use <httpsTransport /> within <binding name=\"amfBinding\">  (services/web.config)");
                    }
                }
                else
                {
                    if (http == null)
                    {
                        MarkAsFail(AmfBindingLabel, "httpTransport section not found", "Use <httpTransport /> within <binding name=\"amfBinding\">.  (services/web.config)");
                    }
                }

                MarkAsPass(AmfBindingLabel);
            }
            catch (Exception ex)
            {
                MarkAsFail(AmfBindingLabel, "EXCEPTION DURING TEST: " + ex.Message, null);
            }
        }