コード例 #1
0
        private void ScenarioExecutionFinished(IAsyncResult result)
        {
            TaskLogger.LogEnter();
            object[]  array    = result.AsyncState as object[];
            ITestStep testStep = array[0] as ITestStep;

            TestCasConnectivity.TestCasConnectivityRunInstance testCasConnectivityRunInstance = array[1] as TestCasConnectivity.TestCasConnectivityRunInstance;
            IResponseTracker      responseTracker       = array[2] as IResponseTracker;
            CasTransactionOutcome casTransactionOutcome = array[3] as CasTransactionOutcome;
            SecureString          secureString          = array[4] as SecureString;

            try
            {
                testStep.EndExecute(result);
                this.CompleteSuccessfulOutcome(casTransactionOutcome, testCasConnectivityRunInstance, responseTracker);
            }
            catch (Exception ex)
            {
                testCasConnectivityRunInstance.Outcomes.Enqueue(TestWebApplicationConnectivity2.GenerateVerboseMessage(ex.ToString()));
                this.CompleteFailedOutcome(casTransactionOutcome, testCasConnectivityRunInstance, responseTracker, ex);
            }
            finally
            {
                TaskLogger.LogExit();
                if (secureString != null)
                {
                    secureString.Dispose();
                }
                if (testCasConnectivityRunInstance != null)
                {
                    testCasConnectivityRunInstance.Outcomes.Enqueue(casTransactionOutcome);
                    testCasConnectivityRunInstance.Result.Complete();
                }
            }
        }
コード例 #2
0
 protected sealed override List <CasTransactionOutcome> ExecuteTests(TestCasConnectivity.TestCasConnectivityRunInstance instance)
 {
     TaskLogger.LogEnter();
     try
     {
         VirtualDirectoryUriScope virtualDirectoryUriScope;
         Uri testUri = this.GetTestUri(instance, out virtualDirectoryUriScope);
         base.WriteVerbose(Strings.CasHealthWebAppStartTest(testUri));
         IRequestAdapter    requestAdapter    = this.CreateRequestAdapter(virtualDirectoryUriScope);
         IExceptionAnalyzer exceptionAnalyzer = this.CreateExceptionAnalyzer(testUri);
         IResponseTracker   responseTracker   = this.CreateResponseTracker();
         IHttpSession       session           = this.CreateHttpSession(requestAdapter, exceptionAnalyzer, responseTracker, instance);
         this.HookupEventHandlers(session);
         CasTransactionOutcome casTransactionOutcome = this.CreateOutcome(instance, testUri, responseTracker);
         string       userName;
         string       domain;
         SecureString secureString;
         this.GetUserParameters(instance, out userName, out domain, out secureString);
         ITestStep testStep = this.CreateScenario(instance, testUri, userName, domain, secureString, virtualDirectoryUriScope, instance.CasFqdn);
         testStep.BeginExecute(session, new AsyncCallback(this.ScenarioExecutionFinished), new object[]
         {
             testStep,
             instance,
             responseTracker,
             casTransactionOutcome,
             secureString
         });
     }
     finally
     {
         TaskLogger.LogExit();
     }
     return(null);
 }
コード例 #3
0
        internal override void CompleteFailedOutcome(CasTransactionOutcome outcome, TestCasConnectivity.TestCasConnectivityRunInstance instance, IResponseTracker responseTracker, Exception e)
        {
            TestEcpConnectivityOutcome testEcpConnectivityOutcome = outcome as TestEcpConnectivityOutcome;
            ScenarioException          scenarioException          = e.GetScenarioException();

            if (scenarioException != null)
            {
                testEcpConnectivityOutcome.FailureSource    = scenarioException.FailureSource.ToString();
                testEcpConnectivityOutcome.FailureReason    = scenarioException.FailureReason.ToString();
                testEcpConnectivityOutcome.FailingComponent = scenarioException.FailingComponent.ToString();
            }
            testEcpConnectivityOutcome.Update(CasTransactionResultEnum.Failure, (scenarioException != null) ? scenarioException.Message.ToString() : e.Message.ToString(), EventTypeEnumeration.Error);
            base.WriteMonitoringEvent(1001, this.MonitoringEventSource, EventTypeEnumeration.Error, Strings.CasHealthTransactionFailures((scenarioException != null) ? scenarioException.Message.ToString() : e.Message.ToString()));
        }
コード例 #4
0
 internal override void CompleteSuccessfulOutcome(CasTransactionOutcome outcome, TestCasConnectivity.TestCasConnectivityRunInstance instance, IResponseTracker responseTracker)
 {
     outcome.Update(CasTransactionResultEnum.Success);
     base.WriteMonitoringEvent(1000, this.MonitoringEventSource, EventTypeEnumeration.Success, Strings.CasHealthAllTransactionsSucceeded);
 }
コード例 #5
0
 internal override CasTransactionOutcome CreateOutcome(TestCasConnectivity.TestCasConnectivityRunInstance instance, Uri testUri, IResponseTracker responseTracker)
 {
     return(new TestEcpConnectivityOutcome(instance.CasFqdn, (instance.exchangePrincipal == null) ? null : instance.exchangePrincipal.MailboxInfo.Location.ServerFqdn, Strings.CasHealthEcpScenarioTestWebService, Strings.CasHealthEcpScenarioTestWebServiceDescription, "Logon Latency", base.LocalSiteName, instance.trustAllCertificates, instance.credentials.UserName, instance.VirtualDirectoryName, testUri, instance.UrlType)
     {
         HttpData = responseTracker.Items
     });
 }
コード例 #6
0
 internal virtual IHttpSession CreateHttpSession(IRequestAdapter requestAdapter, IExceptionAnalyzer exceptionAnalyzer, IResponseTracker responseTracker, TestCasConnectivity.TestCasConnectivityRunInstance instance)
 {
     return(new HttpSession(requestAdapter, exceptionAnalyzer, responseTracker)
     {
         SslValidationOptions = (this.trustAllCertificates ? SslValidationOptions.NoSslValidation : SslValidationOptions.BasicCertificateValidation),
         UserAgent = "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; MSEXCHMON; TESTCONN2)",
         EventState = instance
     });
 }
コード例 #7
0
 internal abstract void CompleteFailedOutcome(CasTransactionOutcome outcome, TestCasConnectivity.TestCasConnectivityRunInstance instance, IResponseTracker responseTracker, Exception e);
コード例 #8
0
 internal abstract void CompleteSuccessfulOutcome(CasTransactionOutcome outcome, TestCasConnectivity.TestCasConnectivityRunInstance instance, IResponseTracker responseTracker);
コード例 #9
0
 internal abstract CasTransactionOutcome CreateOutcome(TestCasConnectivity.TestCasConnectivityRunInstance instance, Uri testUri, IResponseTracker responseTracker);