コード例 #1
0
ファイル: BaseTest.cs プロジェクト: kudrinyaroslav/ON-0110
        /// <summary>
        /// Constructor. Performs initialization.
        /// </summary>
        /// <param name="param"></param>
        protected BaseTest(TestLaunchParam param)
        {
            _cameraAddress        = param.ServiceAddress;
            _cameraIp             = param.CameraIp;
            _cameraId             = param.CameraUUID;
            _nic                  = param.NIC;
            _username             = param.UserName;
            _password             = param.Password;
            _useUTCTimestamp      = param.UseUTCTimestamp;
            _operator             = param.Operator;
            _videoForm            = param.VideoForm;
            _environmentSettings  = param.EnvironmentSettings;
            _ptzNodeToken         = param.PTZNodeToken;
            _useEmbeddedPassword  = param.UseEmbeddedPassword;
            _password1            = param.Password1;
            _password2            = param.Password2;
            _operationDelay       = param.OperationDelay;
            _recoveryDelay        = param.RecoveryDelay;
            _relayOutputDelayTime = param.RelayOutputDelayTime;

            _rebootTimeout = param.RebootTimeout;

            _semaphore = new TestSemaphore();

            _trafficListener                   = new TrafficListener();
            _trafficListener.RequestSent      += LogRequest;
            _trafficListener.ResponseReceived += LogResponse;

            _endpointController = new EndpointController(new EndpointAddress(_cameraAddress));

            _credentialsProvider          = new CredentialsProvider();
            _credentialsProvider.Username = param.UserName;
            _credentialsProvider.Password = param.Password;
        }
コード例 #2
0
        protected BaseOnvifTest(TestLaunchParam param)
            : base(param)
        {
            _features = param.Features;

            _cameraAddress       = param.ServiceAddress;
            _cameraIp            = param.CameraIp;
            _cameraId            = param.CameraUUID;
            _nic                 = param.NIC;
            _username            = param.UserName;
            _password            = param.Password;
            _useUTCTimestamp     = param.UseUTCTimestamp;
            _operator            = param.Operator;
            _videoForm           = param.VideoForm;
            _environmentSettings = param.EnvironmentSettings;

            _messageTimeout = param.MessageTimeout;

            _operationDelay = param.OperationDelay;
            _recoveryDelay  = param.RecoveryDelay;

            _rebootTimeout = param.RebootTimeout;

            _trafficListener                   = new TrafficListener();
            _trafficListener.RequestSent      += LogRequest;
            _trafficListener.ResponseReceived += LogResponse;

            _endpointController = new EndpointController(new EndpointAddress(_cameraAddress));

            _credentialsProvider          = new CredentialsProvider();
            _credentialsProvider.Username = param.UserName;
            _credentialsProvider.Password = param.Password;
            _credentialsProvider.Security = param.Security;
        }
コード例 #3
0
ファイル: BaseTest.cs プロジェクト: kudrinyaroslav/ON-0110
 protected virtual void Initialize(BaseTest test)
 {
     _trafficListener                   = new TrafficListener();
     _trafficListener.RequestSent      += test.LogRequest;
     _trafficListener.ResponseReceived += test.LogResponse;
     test.AttachListenerTimeFilter(_trafficListener);
 }
コード例 #4
0
ファイル: BaseTest.cs プロジェクト: kudrinyaroslav/ON-0110
        /// <summary>
        /// Constructor. Performs initialization.
        /// </summary>
        /// <param name="param"></param>
        protected BaseTest(BaseTestParam param)
        {
            _semaphore = new TestSemaphore();

            _trafficListener                   = new TrafficListener();
            _trafficListener.RequestSent      += LogRequest;
            _trafficListener.ResponseReceived += LogResponse;
        }
コード例 #5
0
ファイル: BaseTest.cs プロジェクト: kudrinyaroslav/ON-0110
        public void AttachListenerTimeFilter(TrafficListener Listener)
        {
            Listener.MessageProcessingTime += i =>
            {
                if (null != _currentStep && 0 != i &&
                    !string.IsNullOrEmpty(_currentStep.Request) && TrafficListener.untrackedRequests.All(e => !_currentStep.Request.Contains(e)))
                {
                    //if (_currentStep.ProcessingTimeSpecified)
                    //    LogStepEvent(string.Format("Processing time for step '{0}' is already specified: {1}.", _currentStep.StepName, _currentStep.ProcessingTime));

                    _currentStep.ProcessingTimes.Add(i);
                }
            };
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
 public static void AddTrafficListener(TrafficListener listener) => ListenerList.Add(listener);
コード例 #8
0
        /// <summary>
        /// Method for running tests in the background.
        /// </summary>
        void RunTests()
        {
            TrafficListener.ResetStatistics();
            System.Diagnostics.Debug.WriteLine("RunTests started");
            //_haltEvent.Reset();
            // types description for test class constructor
            Type[] types = new Type[] { typeof(TestLaunchParam) };

            // parameters as defined in TestEngine.
            TestLaunchParam param = new TestLaunchParam();

            param.ServiceAddress      = _parameters.Address;
            param.CameraIp            = _parameters.CameraIP;
            param.CameraUUID          = _parameters.CameraUUID;
            param.NIC                 = _parameters.NetworkInterfaceController;
            param.MessageTimeout      = _parameters.MessageTimeout;
            param.RebootTimeout       = _parameters.RebootTimeout;
            param.UserName            = _parameters.UserName;
            param.Password            = _parameters.Password;
            param.UseUTCTimestamp     = _parameters.UseUTCTimestamp;
            param.Operator            = _parameters.Operator;
            param.VideoForm           = _parameters.VideoForm;
            param.EnvironmentSettings = _parameters.EnvironmentSettings;
            param.PTZNodeToken        = _parameters.PTZNodeToken;
            param.UseEmbeddedPassword = _parameters.UseEmbeddedPassword;
            param.Password1           = _parameters.Password1;
            param.Password2           = _parameters.Password2;
            param.OperationDelay      = _parameters.OperationDelay;
            param.RecoveryDelay       = _parameters.RecoveryDelay;
            param.SecureMethod        = _parameters.SecureMethod;
            param.SubscriptionTimeout = _parameters.SubscriptionTimeout;
            param.EventTopic          = _parameters.EventTopic;
            param.TopicNamespaces     = _parameters.TopicNamespaces;

            param.RelayOutputDelayTimeMonostable = _parameters.RelayOutputDelayTimeMonostable;
            param.RecordingToken = _parameters.RecordingToken;
            param.SearchTimeout  = _parameters.SearchTimeout;
            param.MetadataFilter = _parameters.MetadataFilter;
            param.RetentionTime  = _parameters.RetentionTime;

            param.AdvancedPrameters = _parameters.AdvancedParameters;

            // parameters for constructor.
            args = new object[] { param };

            param.DeclaredScopes.AddRange(_scopes);

            ExecutableTestList processes = _parameters.TestCases;
            bool featuresDefined         = _featuresDefined;

            switch (_parameters.FeatureDefinition)
            {
            case FeatureDefinitionMode.Default:
                param.Features.AddRange(_features);
                break;

            case FeatureDefinitionMode.AssumeSupported:
                featuresDefined             = true;
                param.FeatureDefinitionMode = Base.Definitions.FeatureDefinitionMode.AllSupported;
                break;

            case FeatureDefinitionMode.AssumeNotSupported:
                param.FeatureDefinitionMode = Base.Definitions.FeatureDefinitionMode.AllNotSupported;
                featuresDefined             = true;
                break;
            }

            if (!featuresDefined)
            {
                if (!processes.Contains(FeaturesDefinitionProcess.This))
                {
                    processes.Add(FeaturesDefinitionProcess.This);
                }

                System.Diagnostics.Debug.WriteLine("SECURITY: NONE");
                param.Security = Security.None;
            }
            else
            {
                if (processes.Contains(FeaturesDefinitionProcess.This))
                {
                    processes.Remove(FeaturesDefinitionProcess.This);
                }

                // if "Assume all supported", Digest also is assumed to be supported !!!
                if (_features.Contains(Feature.Digest) || _parameters.FeatureDefinition == Tests.Engine.FeatureDefinitionMode.AssumeSupported)
                {
                    System.Diagnostics.Debug.WriteLine("SECURITY: DIGEST");
                    param.Security = Security.Digest;
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("SECURITY: WS-USERNAME");
                    param.Security = Security.WS;
                }
                //
                // we HAVE features => Controller is notified already about profile.
                // so, if we just run some tests - there is no reason to colour profiles tree
                // or select tests in test tree.
                //
                bool defineTests = (processes.Count == 1 && processes.Contains(FeaturesDefinitionProcess.This)) && _parameters.FeatureDefinition != FeatureDefinitionMode.Define;
                if (defineTests)
                {
                    List <Feature> features = new List <Feature>();
                    features.AddRange(_features);
                    features.AddRange(_undefinedFeatures);

                    // define test cases via features detected
                    List <TestInfo> tests = ConformanceLogicHandler.GetTestsByFeatures(_parameters.AllTestCases, features, _parameters.Conformance);
                    // no tests in list, not a feature definition process - add tests to list
                    _parameters.TestCases.AddRange(tests);
                    // notify anyway (?)
                    // - really, notify if not notified previously...

                    ReportInitializationCompleted(tests, defineTests);
                }
            }
//            if (_parameters.TestCases.Count > 0)
//            {
//                // if this is a request to run tests, not only feature definition
//                if (!(_parameters.TestCases.Count == 1 && _parameters.TestCases.First().ProcessType == ProcessType.FeatureDefinition ))
//                {
//                    processes.AddRange(_parameters.TestCases);
//                }
//            }

            var bCompletedNormally = RunTestExecutionLoop(processes, types, param);

            // all tests are performed.
            _state = TestState.Idle;

            if (TestSuiteCompleted != null && !_shutDownInProgress)
            {
                TestSuiteCompleted(_parameters, bCompletedNormally);
            }
            System.Diagnostics.Debug.WriteLine("RunTests stopped");

/*
 *          int Max;
 *          int Median;
 *          int Mean;
 *          TrafficListener.GetAggregated(out Max, out Median, out Mean);
 *          System.Diagnostics.Debug.WriteLine(string.Format("RunTests stopped with Max={0}, Median={1} and Mean={2}", Max, Median, Mean));
 */
        }
コード例 #9
0
 public static void AddTrafficListener(TrafficListener listener) => ListenerList.Add(listener);