示例#1
0
        /// <summary>
        /// Gets a checker by checker kind, test site, and checker config.
        /// </summary>
        /// <param name="kind">The checker kind</param>
        /// <param name="testSite">The test site</param>
        /// <param name="checkerConfig">The checker configuration</param>
        /// <returns>The checker</returns>
        public static IChecker GetChecker(CheckerKinds kind, ITestSite testSite, ICheckerConfig checkerConfig)
        {
            IChecker checker = null;

            switch (kind)
            {
            case CheckerKinds.AssertChecker:
                checker = new DefaultAssertChecker(testSite, checkerConfig);
                break;

            case CheckerKinds.AssumeChecker:
                checker = new DefaultAssumeChecker(testSite, checkerConfig);
                break;

            case CheckerKinds.DebugChecker:
                checker = new DefaultDebugChecker(testSite, checkerConfig);
                break;

            default:
                throw new InvalidOperationException("Checker kind is not supported: " + kind.ToString());
            }
            if (null == checker)
            {
                throw new InvalidOperationException(
                          string.Format("Cannot create {0} checker instance.", kind.ToString()));
            }
            return(checker);
        }
示例#2
0
        /// <summary>
        /// Constructs an instance of DefaultChecker.
        /// </summary>
        /// <param name="testSite">The test site to be bound.</param>
        /// <param name="checkerName">The name of the current checker (Assert, Assume or Debug).</param>
        /// <param name="failedLogKind">The log entry kind for logging a failed check.</param>
        /// <param name="succeededLogKind">The log entry kind for logging a succeeded check.</param>
        /// <param name="inconclusiveLogKind">The log entry kind for logging an inconclusive check.</param>
        /// <param name="checkerConfig">The checker confuguration to crate async error processor.</param>
        protected DefaultChecker(
            ITestSite testSite,
            string checkerName,
            LogEntryKind failedLogKind,
            LogEntryKind succeededLogKind,
            LogEntryKind inconclusiveLogKind,
            ICheckerConfig checkerConfig)
        {
            this.testSite            = testSite;
            this.checkerName         = checkerName;
            this.failedLogKind       = failedLogKind;
            this.succeededLogKind    = succeededLogKind;
            this.inconclusiveLogKind = inconclusiveLogKind;
            this.exceptionFilter     = testSite.Properties[ConfigurationPropertyName.ExceptionFilter];

            if (checkerConfig == null)
            {
                throw new ArgumentNullException("checkerConfig");
            }

            this.asyncErrorProcessor = new AsynchronousErrorProcessor(
                checkerConfig.AssertFailuresBeforeThrowException, checkerConfig.MaxFailuresToDisplayPerTestCase);

            testSite.TestStarted += new EventHandler <TestStartFinishEventArgs>(
                delegate(object sender, TestStartFinishEventArgs e)
            {
                asyncErrorProcessor.Initialize();
            }
                );

            testSite.TestFinished += new EventHandler <TestStartFinishEventArgs>(
                delegate(object sender, TestStartFinishEventArgs e)
            {
                asyncErrorProcessor.Cleanup();
            }
                );

            if (null != testSite.Properties.Get("ExceptionalRequirements"))
            {
                var reqList = testSite.Properties.Get("ExceptionalRequirements").Split(',');
                foreach (string req in reqList)
                {
                    this.exceptionalRequirements.Add(req.Trim());
                }
            }
        }
 /// <summary>
 /// Constructs a new instance of DefaultAssumeChecker.
 /// </summary>
 /// <param name="testSite">The test site which the checker is hosted on.</param>
 /// <param name="checkerConfig">The configuration to checker.</param>
 public DefaultAssumeChecker(ITestSite testSite, ICheckerConfig checkerConfig)
     : base(testSite, "Assume", LogEntryKind.CheckFailed, LogEntryKind.CheckSucceeded, LogEntryKind.CheckInconclusive, checkerConfig)
 {
 }
 /// <summary>
 /// Constructs a new instance of DefaultDebugChecker.
 /// </summary>
 /// <param name="testSite">The test site which the checker is hosted on.</param>
 /// <param name="checkerConfig">The configuration to checker.</param>
 public DefaultDebugChecker(ITestSite testSite, ICheckerConfig checkerConfig)
     : base(testSite, "Debug", LogEntryKind.Debug, LogEntryKind.Debug, LogEntryKind.Debug, checkerConfig)
 {
 }