public static async ValueTask DefaultMessageBus()
        {
            await using var ctxt = TestableTestAssemblyRunnerContext.Create();
            await ctxt.InitializeAsync();

            var result = ctxt.MessageBus;

            Assert.IsType <MessageBus>(result);
        }
        public static async ValueTask GuardClause()
        {
            await using var ctxt = TestableTestAssemblyRunnerContext.Create();

            var ex = Record.Exception(() => ctxt.MessageBus);

            Assert.IsType <InvalidOperationException>(ex);
            Assert.Equal($"Attempted to get MessageBus on an uninitialized '{typeof(TestableTestAssemblyRunnerContext).FullName}' object", ex.Message);
        }
        public static async ValueTask SyncMessageBusOption()
        {
            var executionOptions = _TestFrameworkOptions.ForExecution();

            executionOptions.SetSynchronousMessageReporting(true);
            await using var ctxt = TestableTestAssemblyRunnerContext.Create(executionOptions);
            await ctxt.InitializeAsync();

            var result = ctxt.MessageBus;

            Assert.IsType <SynchronousMessageBus>(result);
        }
예제 #4
0
        TestableTestAssemblyRunner(
            TestableTestAssemblyRunnerContext ctxt,
            RunSummary result,
            bool cancelInRunTestCollectionAsync,
            ITestCollectionOrderer?testCollectionOrderer)
        {
            DefaultTestCaseOrderer       = GetTestCaseOrderer(ctxt);
            DefaultTestCollectionOrderer = GetTestCollectionOrderer(ctxt);

            this.ctxt   = ctxt;
            this.result = result;
            this.cancelInRunTestCollectionAsync = cancelInRunTestCollectionAsync;
            this.testCollectionOrderer          = testCollectionOrderer;
        }
예제 #5
0
        public static TestableTestAssemblyRunner Create(
            _IMessageSink?executionMessageSink = null,
            RunSummary?result      = null,
            _ITestCase[]?testCases = null,
            _ITestFrameworkExecutionOptions?executionOptions = null,
            bool cancelInRunTestCollectionAsync          = false,
            ITestCollectionOrderer?testCollectionOrderer = null)
        {
            var ctxt = new TestableTestAssemblyRunnerContext(
                Mocks.TestAssembly(Assembly.GetExecutingAssembly()),
                testCases ?? new[] { Substitute.For <_ITestCase>() },                 // Need at least one so it calls RunTestCollectionAsync
                executionMessageSink ?? SpyMessageSink.Create(),
                executionOptions ?? _TestFrameworkOptions.ForExecution()
                );

            return(new(ctxt, result ?? new RunSummary(), cancelInRunTestCollectionAsync, testCollectionOrderer));
        }
예제 #6
0
 protected override ValueTask AfterTestAssemblyStartingAsync(TestableTestAssemblyRunnerContext ctxt)
 {
     AfterTestAssemblyStarting_Called  = true;
     AfterTestAssemblyStarting_Context = TestContext.Current;
     AfterTestAssemblyStarting_Callback(ctxt.Aggregator);
     return(default);
예제 #7
0
 protected override ITestCollectionOrderer GetTestCollectionOrderer(TestableTestAssemblyRunnerContext ctxt) =>
 testCollectionOrderer ?? base.GetTestCollectionOrderer(ctxt);