/// <summary> /// Initializes device management service client /// </summary> /// <param name="address">Address of device management service</param> void InitializeClient(string address) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _client = new ManagementServiceProvider(address, env.Timeouts.Message); _client.ExceptionThrown += OnExceptionThrown; _client.OnDeviceInformationReceived += DeviceInformationReceived; _client.OperationCompleted += OnOperationCompleted; _client.OperationStarted += ReportOperationStarted; _client.FaultThrown += OnFaultThrown; _client.Timeout = env.Timeouts.Message; }
/// <summary> /// Creates client for device management service /// </summary> /// <param name="address">Management service address</param> void InitializeDeviceClient(string address) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _deviceClient = new ManagementServiceProvider(address, env.Timeouts.Message); _deviceClient.ExceptionThrown += OnExceptionThrown; _deviceClient.OperationCompleted += OnOperationCompleted; _deviceClient.OperationStarted += OnOperationStarted; _deviceClient.Timeout = env.Timeouts.Message; _deviceClient.ResponseReceived += OnResponseReceived; _deviceClient.OnServicesInfoReceived += OnServicesInfoReceived; _deviceClient.Security = ContextController.GetDebugInfo().Security; }
/// <summary> /// Creates client for PTZ service /// </summary> /// <param name="address">PTZ service address</param> void IntializePtzClient(string address) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _ptzClient = new PTZServiceProvider(address, env.Timeouts.Message); _ptzClient.ExceptionThrown += OnExceptionThrown; _ptzClient.OperationCompleted += OnOperationCompleted; _ptzClient.OperationStarted += OnOperationStarted; _ptzClient.Timeout = env.Timeouts.Message; _ptzClient.ResponseReceived += OnResponseReceived; _ptzClient.OnPTZConfigurationsReceived += OnPTZConfigurationsReceived; _ptzClient.Security = ContextController.GetDebugInfo().Security; }
/// <summary> /// Saves current settings as a profile. /// </summary> /// <param name="profileName">Profile name.</param> /// <returns>New profile object.</returns> public Profile SaveCurrentProfile(string profileName) { Profile profile = _profiles.Profiles.Where(p => p.Name == profileName).FirstOrDefault(); if (profile == null) { profile = new Profile(profileName); _profiles.Profiles.Add(profile); } profile.InterTests = View.SettingsView.TimeBetweenTests; profile.Reboot = View.SettingsView.RebootTimeout; profile.Message = View.SettingsView.MessageTimeout; profile.OperationDelay = View.SettingsView.OperationDelay; profile.RecoveryDelay = View.SettingsView.RecoveryDelay; profile.DnsIpv4 = View.SettingsView.DnsIpv4; profile.NtpIpv4 = View.SettingsView.NtpIpv4; profile.GatewayIpv4 = View.SettingsView.GatewayIpv4; profile.DnsIpv6 = View.SettingsView.DnsIpv6; profile.NtpIpv6 = View.SettingsView.NtpIpv6; profile.GatewayIpv6 = View.SettingsView.GatewayIpv6; profile.UseEmbeddedPassword = View.SettingsView.UseEmbeddedPassword; profile.Password1 = View.SettingsView.Password1; profile.Password2 = View.SettingsView.Password2; profile.SecureMethod = View.SettingsView.SecureMethod; profile.PTZNodeToken = View.SettingsView.PTZNodeToken; profile.VideoSourceToken = View.SettingsView.VideoSourceToken; profile.EventTopic = View.SettingsView.EventTopic; profile.TopicNamespaces = View.SettingsView.TopicNamespaces; profile.SubscriptionTimeout = View.SettingsView.SubscriptionTimeout; profile.RelayOutputDelayTime = View.SettingsView.RelayOutputDelayTimeMonostable; TestOptions options = ContextController.GetTestOptions(); profile.TestCases = options.Tests; profile.TestGroups = options.Groups; /*******************************/ profile.AdvancedSettings = GetAdvancedSettings(); /********************************/ ProfilesManager.Save(_profiles); return(profile); }
/// <summary> /// Returns service addresses /// </summary> public void GetAddress(CapabilityCategory[] categories) { DiscoveredDevices devices = ContextController.GetDiscoveredDevices(); _deviceClientWorking = true; string address = devices != null ? devices.ServiceAddress : string.Empty; InitializeDeviceClient(address); DebugInfo info = ContextController.GetDebugInfo(); bool capabilitiesStyle = (info.CapabilitiesExchange == CapabilitiesExchangeStyle.GetCapabilities); _deviceClient.GetServiceAddresses(capabilitiesStyle, categories); }
/// <summary> /// Creates client for media service /// </summary> /// <param name="address">Media service address</param> void InitializeMediaClient(string address) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _mediaClient = new MediaServiceProvider(address, env.Timeouts.Message); _mediaClient.ExceptionThrown += new Action <string, Exception>(OnExceptionThrown); _mediaClient.OperationCompleted += new Action(OnOperationCompleted); _mediaClient.OperationStarted += new Action(OnOperationStarted); _mediaClient.OnMediaUriReceived += OnMediaUriReceived; _mediaClient.Timeout = env.Timeouts.Message; _mediaClient.ResponseReceived += OnResponseReceived; _mediaClient.OnProfilesReceived += OnProfilesReceived; _mediaClient.OnPTZConfigurationAdded += OnPTZConfigurationAdded; }
/// <summary> /// Selects feature-dependent tests. /// </summary> public void ApplyFeatures() { List <Feature> features = View.Features; DeviceEnvironment environment = ContextController.GetDeviceEnvironment(); environment.Features = new List <Feature>(features); environment.Services.Clear(); environment.Services.AddRange(View.Services); if (FeaturesApplied != null) { FeaturesApplied(features); } }
/// <summary> /// Loads data saved in context. /// </summary> /// <param name="context"></param> public override void LoadSavedContext(SavedContext context) { base.LoadSavedContext(context); if (context.DebugInfo != null) { DebugInfo info = ContextController.GetDebugInfo(); info.CapabilitiesExchange = context.DebugInfo.CapabilitiesExchange; info.Security = context.DebugInfo.Security; } foreach (IController contoller in _controllers) { contoller.LoadSavedContext(context); } }
/// <summary> /// Applies saved application context /// </summary> /// <param name="context">Saved context</param> public override void LoadSavedContext(SavedContext context) { SetupInfo info = context.SetupInfo; if (info != null) { if (info.DevInfo != null) { View.Brand = info.DevInfo.Manufacturer; View.Model = info.DevInfo.Model; View.OnvifProductName = info.DevInfo.ProductName; View.ProductTypesAll = info.DevInfo.ProductTypesAll; View.ProductTypes = info.DevInfo.ProductTypes; View.ProductTypesOther = info.DevInfo.ProductTypesOther; } //CR is lost during serialization View.OtherInformation = !string.IsNullOrEmpty(info.OtherInfo) ? info.OtherInfo.Replace("\n", "\r\n") : string.Empty; if (info.TesterInfo != null) { View.OperatorName = info.TesterInfo.Operator; View.OrganizationName = info.TesterInfo.Organization; View.OrganizationAddress = !string.IsNullOrEmpty(info.TesterInfo.Address) ? info.TesterInfo.Address.Replace("\n", "\r\n") : string.Empty; } if (info.MemberInfo != null) { View.MemberName = info.MemberInfo.Name; View.MemberAddress = info.MemberInfo.Address; } if (info.SupportInfo != null) { View.InternationalAddress = !string.IsNullOrEmpty(info.SupportInfo.InternationalAddress) ? info.SupportInfo.InternationalAddress.Replace("\n", "\r\n") : string.Empty; View.RegionalAddress = !string.IsNullOrEmpty(info.SupportInfo.RegionalAddress) ? info.SupportInfo.RegionalAddress.Replace("\n", "\r\n") : string.Empty; View.SupportUrl = info.SupportInfo.SupportUrl; View.SupportEmail = info.SupportInfo.SupportEmail; View.SupportPhone = info.SupportInfo.SupportPhone; } ContextController.UpdateSetupInfo(info); } }
/// <summary> /// Updates context data when a user leaves management tab. /// </summary> public override void UpdateContext() { DeviceEnvironment environment = ContextController.GetDeviceEnvironment(); environment.Timeouts = new Timeouts(); environment.Timeouts.InterTests = View.SettingsView.TimeBetweenTests; environment.Timeouts.Message = View.SettingsView.MessageTimeout; environment.Timeouts.Reboot = View.SettingsView.RebootTimeout; environment.EnvironmentSettings = new EnvironmentSettings(); environment.EnvironmentSettings.DnsIpv4 = View.SettingsView.DnsIpv4; environment.EnvironmentSettings.NtpIpv4 = View.SettingsView.NtpIpv4; environment.EnvironmentSettings.DnsIpv6 = View.SettingsView.DnsIpv6; environment.EnvironmentSettings.NtpIpv6 = View.SettingsView.NtpIpv6; environment.EnvironmentSettings.GatewayIpv4 = View.SettingsView.GatewayIpv4; environment.EnvironmentSettings.GatewayIpv6 = View.SettingsView.GatewayIpv6; environment.TestSettings = new TestSettings(); environment.TestSettings.PTZNodeToken = View.SettingsView.PTZNodeToken; environment.TestSettings.UseEmbeddedPassword = View.SettingsView.UseEmbeddedPassword; environment.TestSettings.Password1 = View.SettingsView.Password1; environment.TestSettings.Password2 = View.SettingsView.Password2; environment.TestSettings.OperationDelay = View.SettingsView.OperationDelay; environment.TestSettings.RecoveryDelay = View.SettingsView.RecoveryDelay; environment.TestSettings.VideoSourceToken = View.SettingsView.VideoSourceToken; environment.TestSettings.SecureMethod = View.SettingsView.SecureMethod; environment.TestSettings.SubscriptionTimeout = View.SettingsView.SubscriptionTimeout; environment.TestSettings.EventTopic = View.SettingsView.EventTopic; environment.TestSettings.TopicNamespaces = View.SettingsView.TopicNamespaces; environment.TestSettings.RelayOutputDelayTimeMonostable = View.SettingsView.RelayOutputDelayTimeMonostable; environment.TestSettings.RecordingToken = View.SettingsView.RecordingToken; environment.TestSettings.SearchTimeout = View.SettingsView.SearchTimeout; environment.TestSettings.MetadataFilter = View.SettingsView.MetadataFilter; environment.TestSettings.RetentionTime = View.SettingsView.RetentionTime; environment.TestSettings.RawAdvancedSettings = GetAdvancedSettings(); List <object> advanced = View.SettingsView.AdvancedSettings; environment.TestSettings.AdvancedSettings = advanced; }
/// <summary> /// Updates context. /// </summary> public override void UpdateContext() { TestOptions options = new TestOptions(); //options.InteractiveFirst = View.InteractiveFirst; List <TestInfo> selectedTests = View.SelectedTests; foreach (TestInfo info in selectedTests) { options.Tests.Add(info.Order); } options.Groups.AddRange(View.SelectedGroups); ContextController.UpdateTestOptions(options); }
/// <summary> /// Updates context. /// </summary> public override void UpdateContext() { TestOptions options = new TestOptions(); if (View.TestTreeView != null) { var selectedTests = View.TestTreeView.SelectedTests; foreach (TestInfo info in selectedTests) { options.Tests.Add(info.Order); } options.Groups.AddRange(View.TestTreeView.SelectedGroups); } options.Repeat = View.Repeat; ContextController.UpdateTestOptions(options); }
/// <summary> /// Queries PTZ nodes /// </summary> public void GetPTZNodes() { DiscoveredDevices devices = ContextController.GetDiscoveredDevices(); string address = devices != null ? devices.ServiceAddress : string.Empty; DeviceEnvironment env = ContextController.GetDeviceEnvironment(); ManagementServiceProvider deviceClient = new ManagementServiceProvider(address, env.Timeouts.Message); ReportOperationStarted(); Thread thread = new Thread(new ThreadStart(new Action(() => { try { Device.Capabilities capabilities = deviceClient.GetCapabilitiesSync(new Device.CapabilityCategory[] { Device.CapabilityCategory.PTZ }); if (capabilities.PTZ != null) { string ptzAddress = capabilities.PTZ.XAddr; PTZServiceProvider ptzClient = new PTZServiceProvider(ptzAddress, env.Timeouts.Message); PTZ.PTZNode[] nodes = ptzClient.GetNodes(); if ((nodes != null) && (nodes.Length > 0)) { View.SetPTZNodes(nodes); } else { throw new Exception("No PTZ nodes returned by device"); } } else { throw new Exception("Device does not support PTZ service"); } } catch (System.Exception ex) { View.ShowError(ex); } finally { ReportOperationCompleted(); } }))); thread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture; thread.Start(); }
/// <summary> /// Updates test log in "context". /// </summary> public void UpdateTestLog() { TestLog log = new TestLog(); log.TestResults = _testResults; log.Features = _td.Features; log.TestExecutionTime = _testExecutionTime; log.InitializationData = _initializationData; log.FeaturesDefinitionLog = _featureDefinitionLog; log.Timeouts = new RealTimeouts(); TrafficListener.GetAggregated(out log.Timeouts.Maximum, out log.Timeouts.Median, out log.Timeouts.Average); System.Diagnostics.Debug.WriteLine(string.Format("RunTests stopped with Max={0}, Median={1} and Mean={2}", log.Timeouts.Maximum, log.Timeouts.Median, log.Timeouts.Average)); ContextController.UpdateTestLog(log); }
/// <summary> /// Saves current settings as a profile. /// </summary> /// <param name="profileName">Profile name.</param> /// <returns>New profile object.</returns> public Profile SaveCurrentProfile(string profileName) { Profile profile = _profiles.Profiles.Where(p => p.Name == profileName).FirstOrDefault(); if (profile == null) { profile = new Profile(profileName); _profiles.Profiles.Add(profile); } //profile.UserName = View.UserName; //profile.Password = View.Password; //profile.UtcTimeStamp = View.UtcTimestamp; profile.InterTests = View.TimeBetweenTests; profile.Reboot = View.RebootTimeout; profile.Message = View.MessageTimeout; profile.DnsIpv4 = View.DnsIpv4; profile.NtpIpv4 = View.NtpIpv4; profile.GatewayIpv4 = View.GatewayIpv4; profile.DnsIpv6 = View.DnsIpv6; profile.NtpIpv6 = View.NtpIpv6; profile.GatewayIpv6 = View.GatewayIpv6; profile.UseEmbeddedPassword = View.UseEmbeddedPassword; profile.Password1 = View.Password1; profile.Password2 = View.Password2; profile.OperationDelay = View.OperationDelay; TestOptions options = ContextController.GetTestOptions(); profile.TestCases = options.Tests; profile.InteractiveFirst = options.InteractiveFirst; profile.TestGroups = options.Groups; profile.Features = new List <Feature>(View.Features); ProfilesManager.Save(_profiles); return(profile); }
/// <summary> /// Checks if all information required is entered at the Setup tab. /// </summary> /// <returns>True if user filled all the fields required.</returns> public bool IsTestInfoFull() { SetupInfo setupInfo = ContextController.GetSetupInfo(); if (string.IsNullOrEmpty(setupInfo.TesterInfo.Operator) || string.IsNullOrEmpty(setupInfo.TesterInfo.Organization) || string.IsNullOrEmpty(setupInfo.TesterInfo.Address) || string.IsNullOrEmpty(setupInfo.DevInfo.FirmwareVersion) || string.IsNullOrEmpty(setupInfo.DevInfo.Manufacturer) || string.IsNullOrEmpty(setupInfo.DevInfo.Model) || string.IsNullOrEmpty(setupInfo.DevInfo.SerialNumber)) { return(false); } else { return(true); } }
/// <summary> /// Common "Save" procedure /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fileName"></param> /// <param name="results"></param> void SaveInternal <T>(string fileName, T results) { StreamWriter writer = null; try { DebugReport <T> report = new DebugReport <T>(); report.ExecutionTime = DateTime.Now; DeviceInfo info = new DeviceInfo(); if (_initializationData != null && _initializationData.DeviceInformation != null) { info.FirmwareVersion = _initializationData.DeviceInformation.FirmwareVersion; info.HardwareID = _initializationData.DeviceInformation.HardwareID; info.Manufacturer = _initializationData.DeviceInformation.Manufacturer; info.Model = _initializationData.DeviceInformation.Model; info.SerialNumber = _initializationData.DeviceInformation.SerialNumber; } report.DeviceInfo = info; report.Results = results; { Data.Log.ManagementSettings settings = ContextController.GetManagementSettings(); report.ManagementSettings = settings; } writer = new StreamWriter(fileName); XmlSerializer s = new XmlSerializer(typeof(DebugReport <T>)); s.Serialize(writer, report); } catch (Exception exc) { View.ShowError(exc); } finally { if (writer != null) { writer.Close(); } } }
/////////////////////////////////////////////////////////////////////////// //! @author Ivan Vagunin //// /// <summary> /// Saves context data. /// </summary> public void SaveContextData() { IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Application, new System.Security.Policy.Url("www.onvif.org/OnvifTestTool")); IsolatedStorageFileStream isoFile = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore); // Create a StreamWriter using the isolated storage file StreamWriter writer = new StreamWriter(isoFile); XmlSerializer serializer = new XmlSerializer(typeof(SavedContext)); SavedContext context = new SavedContext(); _conformanceTestController.UpdateContext(); context.SetupInfo = ContextController.GetSetupInfo(); _discoveryController.UpdateContext(); DiscoveredDevices devices = ContextController.GetDiscoveredDevices(); if (devices != null) { context.DiscoveryContext = new SavedDiscoveryContext(); context.DiscoveryContext.ServiceAddress = devices.ServiceAddress; context.DiscoveryContext.DeviceAddress = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty; context.DiscoveryContext.SearchScopes = devices.SearchScopes.Replace(System.Environment.NewLine, " "); context.DiscoveryContext.ShowSearchOptions = devices.ShowSearchOptions; if ((devices.NIC != null) && (devices.NIC.IP != null)) { context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString(); } } _managementController.UpdateContext(); context.DeviceEnvironment = ContextController.GetDeviceEnvironment(); _deviceController.UpdateContext(); context.RequestsInfo = ContextController.GetRequestsInfo(); context.MediaInfo = ContextController.GetMediaInfo(); context.PTZInfo = ContextController.GetPTZInfo(); context.DebugInfo = ContextController.GetDebugInfo(); serializer.Serialize(writer, context); writer.Close(); }
/// <summary> /// Initializes service client, if it's possibly. /// </summary> /// <returns>True if client has been initialized successfully.</returns> bool InitializeClient() { string serviceAddress = string.Empty; DiscoveredDevices devices = ContextController.GetDiscoveredDevices(); if (devices.Current != null) { serviceAddress = devices.ServiceAddress; } try { new Uri(serviceAddress); } catch (Exception) { View.ShowError("Device service address is invalid!"); return(false); } try { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _client = new ManagementServiceProvider(serviceAddress, env.Timeouts.Message); _client.ExceptionThrown += _client_ExceptionThrown; _client.OnDeviceInformationReceived += _client_OnDeviceInformationReceived; _client.OperationCompleted += _client_OperationCompleted; _client.OperationStarted += _client_OperationStarted; _client.ResponseReceived += _client_ResponseReceived; _client.Security = ContextController.GetDebugInfo().Security; return(true); } catch (Exception exc) { View.ShowError(string.Format("Error occurred: {0}", exc.Message)); return(false); } }
/// <summary> /// Updates application context /// </summary> public override void UpdateContext() { base.UpdateContext(); TesterInfo testerInfo = new TesterInfo(); testerInfo.Operator = View.OperatorName; testerInfo.Organization = View.OrganizationName; testerInfo.Address = View.OrganizationAddress; DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.Manufacturer = View.Brand; deviceInfo.Model = View.Model; deviceInfo.ProductName = View.OnvifProductName; deviceInfo.ProductTypesAll = View.ProductTypesAll; deviceInfo.ProductTypes = View.ProductTypes; deviceInfo.ProductTypesOther = View.ProductTypesOther; MemberInfo memberInfo = new MemberInfo(); memberInfo.Address = View.MemberAddress; memberInfo.Name = View.MemberName; SupportInfo supportInfo = new SupportInfo(); supportInfo.InternationalAddress = View.InternationalAddress; supportInfo.RegionalAddress = View.RegionalAddress; supportInfo.SupportUrl = View.SupportUrl; supportInfo.SupportEmail = View.SupportEmail; supportInfo.SupportPhone = View.SupportPhone; SetupInfo setupInfo = new SetupInfo(); setupInfo.DevInfo = deviceInfo; setupInfo.OtherInfo = View.OtherInformation; setupInfo.TesterInfo = testerInfo; setupInfo.MemberInfo = memberInfo; setupInfo.SupportInfo = supportInfo; ContextController.UpdateSetupInfo(setupInfo); }
/// <summary> /// Updates view. /// </summary> public override void UpdateView() { DeviceEnvironment environment = ContextController.GetDeviceEnvironment(); View.TimeBetweenTests = environment.Timeouts.InterTests; View.MessageTimeout = environment.Timeouts.Message; View.RebootTimeout = environment.Timeouts.Reboot; View.DnsIpv4 = environment.EnvironmentSettings.DnsIpv4; View.DnsIpv6 = environment.EnvironmentSettings.DnsIpv6; View.NtpIpv4 = environment.EnvironmentSettings.NtpIpv4; View.NtpIpv6 = environment.EnvironmentSettings.NtpIpv6; View.GatewayIpv4 = environment.EnvironmentSettings.GatewayIpv4; View.GatewayIpv6 = environment.EnvironmentSettings.GatewayIpv6; View.PTZNodeToken = environment.TestSettings.PTZNodeToken; View.UseEmbeddedPassword = environment.TestSettings.UseEmbeddedPassword; View.Password1 = environment.TestSettings.Password1; View.Password2 = environment.TestSettings.Password2; View.OperationDelay = environment.TestSettings.OperationDelay; View.RecoveryDelay = environment.TestSettings.RecoveryDelay; }
/// <summary> /// Creates client for media service /// </summary> /// <param name="address">Media service address</param> void InitializeMediaClient(string address) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); _mediaClient = new MediaServiceProvider(address, env.Timeouts.Message); _mediaClient.ExceptionThrown += OnExceptionThrown; _mediaClient.OperationCompleted += OnOperationCompleted; _mediaClient.OperationStarted += OnOperationStarted; _mediaClient.OnProfilesReceived += OnProfilesReceived; _mediaClient.OnVideoSourceConfigurationsReceived += OnSourceConfigsReceived; _mediaClient.OnVideoEncoderConfigurationReceived += OnVideoEncoderConfigsReceived; _mediaClient.OnVideoEncoderConfigOptionsReceived += OnVideoEncoderConfigOptionsReceived; _mediaClient.OnAudioSourceConfigurationsReceived += OnAudioSourceConfigsReceived; _mediaClient.OnAudioEncoderConfigurationReceived += OnAudioEncoderConfigsReceived; _mediaClient.OnAudioEncoderConfigOptionsReceived += OnAudioEncoderConfigOptionsReceived; _mediaClient.OnMediaUriReceived += OnMediaUriReceived; _mediaClient.Timeout = env.Timeouts.Message; _mediaClient.ResponseReceived += OnResponseReceived; _mediaClient.Security = ContextController.GetDebugInfo().Security; }
/////////////////////////////////////////////////////////////////////////// //! @author Ivan Vagunin //// /// <summary> /// Saves context data. /// </summary> public void SaveContextData() { IsolatedStorageFile isoStore = IsolatedStorageFile.GetMachineStoreForAssembly(); IsolatedStorageFileStream isoFile = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore); // Create a StreamWriter using the isolated storage file StreamWriter writer = new StreamWriter(isoFile); XmlSerializer serializer = new XmlSerializer(typeof(SavedContext)); SavedContext context = new SavedContext(); _setupController.UpdateContext(); context.SetupInfo = ContextController.GetSetupInfo(); _discoveryController.UpdateContext(); DiscoveredDevices devices = ContextController.GetDiscoveredDevices(); if (devices != null) { context.DiscoveryContext = new SavedDiscoveryContext(); context.DiscoveryContext.ServiceAddress = devices.ServiceAddress; context.DiscoveryContext.DeviceAddress = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty; if ((devices.NIC != null) && (devices.NIC.IP != null)) { context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString(); } } _reportController.UpdateContext(); context.ReportInfo = ContextController.GetReportInfo(); _managementController.UpdateContext(); context.DeviceEnvironment = ContextController.GetDeviceEnvironment(); _requestsController.UpdateContext(); context.RequestsInfo = ContextController.GetRequestsInfo(); _deviceController.MediaController.UpdateContext(); context.MediaInfo = ContextController.GetMediaInfo(); _deviceController.PTZController.UpdateContext(); context.PTZInfo = ContextController.GetPTZInfo(); serializer.Serialize(writer, context); writer.Close(); }
/// <summary> /// Updates application context /// </summary> public override void UpdateContext() { DiscoveredDevices devices = new DiscoveredDevices(); devices.NIC = View.NIC; devices.Current = new DeviceInfoFull(); devices.Current.ByDiscovery = View.Current; devices.ServiceAddress = View.ServiceAddress; devices.DeviceAddress = View.DeviceAddress; foreach (DeviceDiscoveryData data in View.Devices) { DeviceInfoFull info = new DeviceInfoFull(); info.ByDiscovery = data; devices.Discovered.Add(info); } ContextController.UpdateDiscoveredDevices(devices); UpdateCredentials(); View.UpdateFormTitle(); }
/// <summary> /// Updates view. /// </summary> public override void UpdateView() { DeviceEnvironment environment = ContextController.GetDeviceEnvironment(); View.SettingsView.TimeBetweenTests = environment.Timeouts.InterTests; View.SettingsView.MessageTimeout = environment.Timeouts.Message; View.SettingsView.RebootTimeout = environment.Timeouts.Reboot; View.SettingsView.OperationDelay = environment.TestSettings.OperationDelay; View.SettingsView.RecoveryDelay = environment.TestSettings.RecoveryDelay; View.SettingsView.DnsIpv4 = environment.EnvironmentSettings.DnsIpv4; View.SettingsView.DnsIpv6 = environment.EnvironmentSettings.DnsIpv6; View.SettingsView.NtpIpv4 = environment.EnvironmentSettings.NtpIpv4; View.SettingsView.NtpIpv6 = environment.EnvironmentSettings.NtpIpv6; View.SettingsView.GatewayIpv4 = environment.EnvironmentSettings.GatewayIpv4; View.SettingsView.GatewayIpv6 = environment.EnvironmentSettings.GatewayIpv6; View.SettingsView.UseEmbeddedPassword = environment.TestSettings.UseEmbeddedPassword; View.SettingsView.Password1 = environment.TestSettings.Password1; View.SettingsView.Password2 = environment.TestSettings.Password2; View.SettingsView.SecureMethod = environment.TestSettings.SecureMethod; View.SettingsView.PTZNodeToken = environment.TestSettings.PTZNodeToken; View.SettingsView.SubscriptionTimeout = environment.TestSettings.SubscriptionTimeout; View.SettingsView.EventTopic = environment.TestSettings.EventTopic; View.SettingsView.TopicNamespaces = environment.TestSettings.TopicNamespaces; View.SettingsView.RelayOutputDelayTimeMonostable = environment.TestSettings.RelayOutputDelayTimeMonostable; View.SettingsView.RecordingToken = environment.TestSettings.RecordingToken; View.SettingsView.SearchTimeout = environment.TestSettings.SearchTimeout; View.SettingsView.MetadataFilter = environment.TestSettings.MetadataFilter; View.SettingsView.RetentionTime = environment.TestSettings.RetentionTime; DisplayAdvancedSettings(environment.TestSettings.RawAdvancedSettings); }
/// <summary> /// Launches tests. /// </summary> /// <param name="parameters">Parameters passed from the View.</param> /// <param name="single">True if "Run current" button is in use. If "Run current" button has /// been clicked, results collected by this moment will not be cleared.</param> void InternalRun(TestSuiteParameters parameters, bool single) { _running = true; _runningSingle = single; _testsCount = parameters.TestCases.Count; DeviceEnvironment env = ContextController.GetDeviceEnvironment(); parameters.UserName = env.Credentials.UserName; parameters.Password = env.Credentials.Password; parameters.UseUTCTimestamp = env.Credentials.UseUTCTimeStamp; parameters.Operator = new Utils.Operator(View.Window); parameters.VideoForm = View.GetVideoForm(); parameters.EnvironmentSettings = new Tests.Common.TestEngine.EnvironmentSettings() { DnsIpv4 = env.EnvironmentSettings.DnsIpv4, NtpIpv4 = env.EnvironmentSettings.NtpIpv4, DnsIpv6 = env.EnvironmentSettings.DnsIpv6, NtpIpv6 = env.EnvironmentSettings.NtpIpv6, DefaultGateway = env.EnvironmentSettings.GatewayIpv4, DefaultGatewayIpv6 = env.EnvironmentSettings.GatewayIpv6 }; if (!single) { _testResults.Clear(); _testExecutionTime = DateTime.Now; } if (TestSuiteStarted != null) { TestSuiteStarted(parameters); } _td.Run(parameters); }
/// <summary> /// Selects tests depending on features selected. /// </summary> /// <param name="features">Features</param> public void SelectFeatureDependentTests(IEnumerable <Feature> features) { // "Must" and "Should" tests are selected when corresponding services are selected. // "Optional" tests don't change their state. // "Conditional Must", "Conditional Should" become checked or unchecked // accordingly to features selection. // List <TestInfo> tests = new List <TestInfo>(); DeviceEnvironment environment = ContextController.GetDeviceEnvironment(); foreach (TestInfo testInfo in _testInfos) { bool add = true; switch (testInfo.RequirementLevel) { case RequirementLevel.ConditionalMust: case RequirementLevel.ConditionalShould: { add = Utils.FeaturesHelper.AllFeaturesSelected(testInfo); } break; case RequirementLevel.Optional: add = false; break; } if (add) { tests.Add(testInfo); } } View.SelectFeatureDependentTests(tests); }
/// <summary> /// Colllects log data. /// </summary> /// <returns></returns> private Data.TestLogFull GetFullTestData() { Data.TestLogFull testLog = new TestLogFull(); Data.TestLog log = ContextController.GetTestLog(); testLog.TestResults = log.TestResults; testLog.Features = log.Features; testLog.InitializationData = log.InitializationData; testLog.FeaturesDefinitionLog = log.FeaturesDefinitionLog; testLog.DeviceInformation = _conformanceTestingInfo; if (log.TestExecutionTime != DateTime.MinValue) { testLog.TestExecutionTime = log.TestExecutionTime; } else { testLog.TestExecutionTime = DateTime.Now; } SetupInfo info = ContextController.GetSetupInfo(); testLog.TesterInfo = info.TesterInfo; testLog.Application = ContextController.GetApplicationInfo(); testLog.ProductName = info.DevInfo.ProductName; testLog.ProductTypes = info.DevInfo.ProductTypes; testLog.ProductTypesOther = info.DevInfo.ProductTypesOther; testLog.OtherInformation = info.OtherInfo; testLog.MemberInfo = info.MemberInfo; testLog.SupportInfo = info.SupportInfo; testLog.ManagementSettings = ContextController.GetManagementSettings(); testLog.DeviceEnvironment = ContextController.GetDeviceEnvironment(); testLog.Timeouts = log.Timeouts; return(testLog); }
/// <summary> /// Adds "wsse:security" element to a message, or replaces existing element. /// </summary> /// <param name="request">Request string.</param> /// <returns>Request string with added (updated) "wsse:security" element.</returns> public string ApplySecurity(string request) { DeviceEnvironment env = ContextController.GetDeviceEnvironment(); string secureRequest; if (!string.IsNullOrEmpty(env.Credentials.UserName)) { SoapHelper soapHelper = new SoapHelper(); secureRequest = soapHelper.ApplySecurity( request, env.Credentials.UserName, env.Credentials.Password, env.Credentials.UseUTCTimeStamp, true); } else { secureRequest = request; } return(secureRequest); }
/// <summary> /// Updates application context /// </summary> public override void UpdateContext() { base.UpdateContext(); TesterInfo testerInfo = new TesterInfo(); testerInfo.Operator = View.OperatorName; testerInfo.Organization = View.OrganizationName; testerInfo.Address = View.OrganizationAddress; DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.FirmwareVersion = View.FirmwareVersion; deviceInfo.Manufacturer = View.Brand; deviceInfo.Model = View.Model; deviceInfo.SerialNumber = View.Serial; SetupInfo setupInfo = new SetupInfo(); setupInfo.DevInfo = deviceInfo; setupInfo.OtherInfo = View.OtherInformation; setupInfo.TesterInfo = testerInfo; ContextController.UpdateSetupInfo(setupInfo); }