/*[Test(Name = "CAPABILITIES AND EVENT SERVICE CAPABILITIES CONSISTENCY",
         *  Order = "05.01.03",
         *  Id = "5-1-3",
         *  Category = Category.EVENT,
         *  Path = PATH,
         *  Version = 2.1,
         *  RequirementLevel = RequirementLevel.Must,
         *  RequiredFeatures = new Feature[] { Feature.GetServices },
         *  FunctionalityUnderTest = new Functionality[] { Functionality.GetEventsServiceCapabilities, Functionality.GetServices })]
         */public void EventsServiceCapabilitiesConsistencyTest()
        {
            RunTest(() =>
            {
                Proxies.Onvif.Capabilities capabilities = GetCapabilities(new CapabilityCategory[] { CapabilityCategory.Events });

                Assert(capabilities.Events != null, "Events field is empty", "Check that the DUT returned Events capabilities");

                Proxies.Event.EventServiceCapabilities serviceEventServiceCapabilities = GetEventCapabilities();

                // compare...
                CompareCapabilities(serviceEventServiceCapabilities, capabilities);
            },
                    () =>
            {
                CloseEventClient();
            });
        }
        void CompareCapabilities(Proxies.Event.Capabilities serviceSapabilities, Proxies.Onvif.Capabilities capabilities)
        {
            BeginStep("Compare Capabilities");

            StringBuilder dump  = new StringBuilder();
            bool          equal = true;

            bool local;

            Proxies.Onvif.EventCapabilities events = capabilities.Events;


            local = CheckCapabilitiesField(serviceSapabilities.WSPausableSubscriptionManagerInterfaceSupportSpecified,
                                           serviceSapabilities.WSPausableSubscriptionManagerInterfaceSupport,
                                           events != null,
                                           events != null ? events.WSPausableSubscriptionManagerInterfaceSupport : false,
                                           "WSPausableSubscriptionManagerInterfaceSupport", dump);
            equal = equal && local;

            local = CheckCapabilitiesField(serviceSapabilities.WSPullPointSupportSpecified,
                                           serviceSapabilities.WSPullPointSupport,
                                           events != null,
                                           events != null ? events.WSPullPointSupport : false,
                                           "WSPullPointSupport", dump);
            equal = equal && local;
            local = CheckCapabilitiesField(serviceSapabilities.WSSubscriptionPolicySupportSpecified,
                                           serviceSapabilities.WSSubscriptionPolicySupport,
                                           events != null,
                                           events != null ? events.WSSubscriptionPolicySupport : false,
                                           "WSSubscriptionPolicySupport", dump);
            equal = equal && local;

            if (!equal)
            {
                LogStepEvent(dump.ToStringTrimNewLine());
                throw new AssertException("Settings don't match");
            }

            StepPassed();
        }