File: xunit\WcfTheoryTestCaseRunner.cs
Web Access
Project: ..\..\..\src\System.Private.ServiceModel\tests\Common\Infrastructure\Infrastructure.Common.csproj (Infrastructure.Common)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading;
using Xunit.Abstractions;
using Xunit.Sdk;
 
namespace Infrastructure.Common
{
    internal sealed class WcfTheoryTestCaseRunner : XunitTheoryTestCaseRunner
    {
        private readonly WcfTestCase _testCase;
 
        internal WcfTheoryTestCaseRunner(WcfTestCase testCase, string skipReason, object[] constructorArguments,
            IMessageSink diagnosticMessageSink, IMessageBus messageBus, ExceptionAggregator aggregator,
            CancellationTokenSource cancellationTokenSource)
            : base(testCase, testCase.DisplayName, skipReason, constructorArguments, diagnosticMessageSink,
                messageBus, aggregator, cancellationTokenSource)
        {
            _testCase = testCase;
        }
 
        protected override XunitTestRunner CreateTestRunner(ITest test, IMessageBus messageBus, Type testClass,
            object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, string skipReason,
            IReadOnlyList<BeforeAfterTestAttribute> beforeAfterAttributes, ExceptionAggregator aggregator,
            CancellationTokenSource cancellationTokenSource)
        {
            return new WcfTestRunner(test, messageBus, testClass, constructorArguments, testMethod,
                testMethodArguments, skipReason, beforeAfterAttributes, new ExceptionAggregator(aggregator),
                cancellationTokenSource, DiagnosticMessageSink, _testCase.MaxAttempts, _testCase.RetryDelayMilliseconds);
        }
    }
}