protected ReplayServiceCapabilities GetReplayCapabilities() { ReplayPortClient client = ReplayClient; ReplayServiceCapabilities capabilities = null; RunStep(() => { capabilities = client.GetServiceCapabilities(); }, "Get Service Capabilities"); return(capabilities); }
protected ReplayServiceCapabilities GetReplayServiceCapabilities() { ReplayServiceCapabilities response = null; RunStep(() => { response = ReplayClient.GetServiceCapabilities(); }, "Get Replay service capabilities"); DoRequestDelay(); return(response); }
public void CapabilitiesAndReplayServiceCapabilitiesTest() { RunTest(() => { Service[] services = GetServices(true); Service replayService = services.FindService(Definitions.Onvif.OnvifService.REPLAY); Assert(replayService != null, "No Replay service information returned", "Check that the DUT returned Replay service information"); Assert((replayService.Capabilities != null), "No Capabilities information included", "Check that Capabilities element is included in Services element"); ReplayServiceCapabilities serviceCapabilities = ParseReplayCapabilities(replayService.Capabilities); ReplayServiceCapabilities capabilities = GetReplayCapabilities(); CompareCapabilities(serviceCapabilities, capabilities); }, () => { CloseReplayClient(); }); }
// first - via GetServices; // second - via ServiceCapabilities void CompareCapabilities(ReplayServiceCapabilities serviceCapabilities, ReplayServiceCapabilities capabilities) { BeginStep("Compare Capabilities"); StringBuilder dump = new StringBuilder(); bool equal = true; bool local; List <TestUtils.CheckSettings <ReplayServiceCapabilities> > batch = new List <TestUtils.CheckSettings <ReplayServiceCapabilities> >(); batch.Add(new TestUtils.CheckSettings <ReplayServiceCapabilities>() { FieldName = "ReversePlayback", SpecifiedSelector = (S) => true, ValueSelector = (S) => S.ReversePlayback }); local = TestUtils.BatchCheckBoolean(serviceCapabilities, capabilities, "GetServices", "GetServiceCapabilities", batch, "", dump); equal = local; // second field - range // must compare float[] bool scNotEmpty = serviceCapabilities.SessionTimeoutRange != null && serviceCapabilities.SessionTimeoutRange.Length > 0; bool capNotEmpty = capabilities.SessionTimeoutRange != null && capabilities.SessionTimeoutRange.Length > 0; if (scNotEmpty && capNotEmpty) { foreach (float value in serviceCapabilities.SessionTimeoutRange) { if (!capabilities.SessionTimeoutRange.Contains(value)) { equal = false; // value not found dump.AppendFormat("Value {0} not found in SessionTimeoutRange received via GetServiceCapabilities{0}", Environment.NewLine); } } foreach (float value in capabilities.SessionTimeoutRange) { if (!serviceCapabilities.SessionTimeoutRange.Contains(value)) { equal = false; // value not found dump.AppendFormat("Value {0} not found in SessionTimeoutRange received via GetServices{0}", Environment.NewLine); } } } else { if (scNotEmpty) { equal = false; dump.AppendFormat("SessionTimeoutRange is missing in structure received via GetServiceCapabilities{0}", Environment.NewLine); } if (capNotEmpty) { equal = false; dump.AppendFormat("SessionTimeoutRange is missing in structure received via GetServices{0}", Environment.NewLine); } } if (!equal) { LogStepEvent(dump.ToStringTrimNewLine()); throw new AssertException("Settings don't match"); } StepPassed(); }