Пример #1
0
        public void TestAssemblyStarting()
        {
            var assemblyPath =
                RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
                                        ? @"C:\Users\bradwilson\assembly.dll"
                                        : "/home/bradwilson/assembly.dll";
            var configFilePath =
                RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
                                        ? @"C:\Users\bradwilson\xunit.runner.json"
                                        : "/home/bradwilson/xunit.runner.json";

            var testAssembly = Xunit2Mocks.TestAssembly(assemblyPath, configFilePath, "target-framework");
            var v2Message    = Xunit2Mocks.TestAssemblyStarting(
                testAssembly,
                new DateTime(2020, 11, 3, 17, 55, 0, DateTimeKind.Utc),
                "test-environment",
                "test-framework"
                );
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestAssemblyStarting>(adapted);

            Assert.Equal(Path.GetFileNameWithoutExtension(assemblyPath), v3Message.AssemblyName);
            Assert.Equal(assemblyPath, v3Message.AssemblyPath);
            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(configFilePath, v3Message.ConfigFilePath);
            Assert.Equal(new DateTimeOffset(2020, 11, 3, 17, 55, 0, TimeSpan.Zero), v3Message.StartTime);
            Assert.Equal("target-framework", v3Message.TargetFramework);
            Assert.Equal("test-environment", v3Message.TestEnvironment);
            Assert.Equal("test-framework", v3Message.TestFrameworkDisplayName);
        }
Пример #2
0
        public void TestCaseFinished()
        {
            var v2Message = Xunit2Mocks.TestCaseFinished(
                TestCase,
                testsRun: 2112,
                testsFailed: 42,
                testsSkipped: 404,
                executionTime: 123.4567m
                );
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestCaseFinished>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(123.4567m, v3Message.ExecutionTime);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(42, v3Message.TestsFailed);
            Assert.Equal(2112, v3Message.TestsRun);
            Assert.Equal(404, v3Message.TestsSkipped);
        }
Пример #3
0
    static Xunit2MessageAdapterTests()
    {
        try
        {
            throw new DivideByZeroException();
        }
        catch (Exception ex)
        {
            ThrownException = ex;
        }

        Traits = new Dictionary <string, List <string> >
        {
            { "key1", new List <string> {
                  "value1a", "value1b"
              } },
            { "key2", new List <string> {
                  "value2"
              } },
            { "key3", new List <string>() }
        };

        TestAssembly         = Xunit2Mocks.TestAssembly("testAssembly.dll", "xunit.runner.json");
        TestAssemblyUniqueID = UniqueIDGenerator.ForAssembly(
            TestAssembly.Assembly.Name,
            TestAssembly.Assembly.AssemblyPath,
            TestAssembly.ConfigFileName
            );

        TestCollectionDefinition = Xunit2Mocks.TypeInfo();
        TestCollection           = Xunit2Mocks.TestCollection(TestAssembly, TestCollectionDefinition, "test-collection-display-name");
        TestCollectionUniqueID   = UniqueIDGenerator.ForTestCollection(
            TestAssemblyUniqueID,
            TestCollection.DisplayName,
            TestCollectionDefinition.Name
            );

        TestClassType     = Xunit2Mocks.TypeInfo();
        TestClass         = Xunit2Mocks.TestClass(TestCollection, TestClassType);
        TestClassUniqueID = UniqueIDGenerator.ForTestClass(
            TestCollectionUniqueID,
            TestClass.Class.Name
            );

        TestMethod         = Xunit2Mocks.TestMethod(TestClass, "MyTestMethod");
        TestMethodUniqueID = UniqueIDGenerator.ForTestMethod(
            TestClassUniqueID,
            TestMethod.Method.Name
            );

        TestCase         = Xunit2Mocks.TestCase(TestMethod, "test-case-display-name", "skip-reason", "source-file", 2112, Traits, "test-case-id");
        TestCaseUniqueID = TestCase.UniqueID;

        Test         = Xunit2Mocks.Test(TestCase, "test-display-name");
        TestUniqueID = UniqueIDGenerator.ForTest(TestCaseUniqueID, 0);
    }
Пример #4
0
        public void DiagnosticMessage()
        {
            var v2Message = Xunit2Mocks.DiagnosticMessage("Hello, world!");
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_DiagnosticMessage>(adapted);

            Assert.Equal("Hello, world!", v3Message.Message);
        }
Пример #5
0
        public void ErrorMessage()
        {
            var v2Message = Xunit2Mocks.ErrorMessage(ThrownException);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_ErrorMessage>(adapted);

            AssertErrorMetadata(v3Message, ThrownException);
        }
Пример #6
0
        public void DiscoveryComplete()
        {
            var v2Message = Xunit2Mocks.DiscoveryCompleteMessage();
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_DiscoveryComplete>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
        }
Пример #7
0
        public void TestAssemblyCleanupFailure()
        {
            var v2Message = Xunit2Mocks.TestAssemblyCleanupFailure(TestAssembly, ThrownException);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestAssemblyCleanupFailure>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            AssertErrorMetadata(v3Message, ThrownException);
        }
Пример #8
0
        public void TestCollectionStarting()
        {
            var v2Message = Xunit2Mocks.TestCollectionStarting(TestCollection);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestCollectionStarting>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(TestCollectionDefinition.Name, v3Message.TestCollectionClass);
            Assert.Equal(TestCollection.DisplayName, v3Message.TestCollectionDisplayName);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
        }
Пример #9
0
        public void TestMethodStarting()
        {
            var v2Message = Xunit2Mocks.TestMethodStarting(TestMethod);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestMethodStarting>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethod.Method.Name, v3Message.TestMethod);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
        }
Пример #10
0
        public void TestClassDisposeFinished()
        {
            var v2Message = Xunit2Mocks.TestClassDisposeFinished(Test);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestClassDisposeFinished>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #11
0
        public void TestStarting()
        {
            var v2Message = Xunit2Mocks.TestStarting(Test);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestStarting>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal("test-display-name", v3Message.TestDisplayName);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #12
0
        public void TestOutput()
        {
            var v2Message = Xunit2Mocks.TestOutput(Test, "this is my test output");
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestOutput>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal("this is my test output", v3Message.Output);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #13
0
        public void BeforeTestStarting()
        {
            var v2Message = Xunit2Mocks.BeforeTestStarting(Test, BeforeAfterAttributeName);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_BeforeTestStarting>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(BeforeAfterAttributeName, v3Message.AttributeName);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #14
0
        public void TestPassed()
        {
            var v2Message = Xunit2Mocks.TestPassed(Test, 123.4567m, "abc123");
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestPassed>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(123.4567m, v3Message.ExecutionTime);
            Assert.Equal("abc123", v3Message.Output);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #15
0
        public void TestSkipped()
        {
            var v2Message = Xunit2Mocks.TestSkipped(Test, "I am not running");
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestSkipped>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal(0m, v3Message.ExecutionTime);              // Statically skipped tests always take no runtime
            Assert.Empty(v3Message.Output);
            Assert.Equal("I am not running", v3Message.Reason);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestUniqueID, v3Message.TestUniqueID);
        }
Пример #16
0
        public void TestCaseDiscoveryMessage()
        {
            var v2Message  = Xunit2Mocks.TestCaseDiscoveryMessage(TestCase);
            var discoverer = Substitute.For <ITestFrameworkDiscoverer>();

            discoverer.Serialize(TestCase).Returns("abc123");
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID, discoverer);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestCaseDiscovered>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal("abc123", v3Message.Serialization);
            Assert.Equal("skip-reason", v3Message.SkipReason);
            Assert.Equal("source-file", v3Message.SourceFilePath);
            Assert.Equal(2112, v3Message.SourceLineNumber);
            Assert.Equal("test-case-display-name", v3Message.TestCaseDisplayName);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Collection(
                v3Message.Traits.OrderBy(kvp => kvp.Key),
                trait =>
            {
                Assert.Equal("key1", trait.Key);
                Assert.Equal(new[] { "value1a", "value1b" }, trait.Value);
            },
                trait =>
            {
                Assert.Equal("key2", trait.Key);
                Assert.Equal(new[] { "value2" }, trait.Value);
            },
                trait =>
            {
                Assert.Equal("key3", trait.Key);
                Assert.Empty(trait.Value);
            }
                );
        }
Пример #17
0
        public void TestAssemblyFinished()
        {
            var v2Message = Xunit2Mocks.TestAssemblyFinished(
                TestAssembly,
                testsRun: 2112,
                testsFailed: 42,
                testsSkipped: 6,
                executionTime: 123.4567m
                );
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestAssemblyFinished>(adapted);

            Assert.NotEmpty(v3Message.AssemblyUniqueID);
            Assert.Equal(123.4567m, v3Message.ExecutionTime);
            Assert.Equal(42, v3Message.TestsFailed);
            Assert.Equal(2112, v3Message.TestsRun);
            Assert.Equal(6, v3Message.TestsSkipped);
        }
Пример #18
0
        public void TestCaseStarting()
        {
            var v2Message = Xunit2Mocks.TestCaseStarting(TestCase);
            var v2Adapter = new Xunit2MessageAdapter(TestAssemblyUniqueID);

            var adapted = v2Adapter.Adapt(v2Message);

            var v3Message = Assert.IsType <_TestCaseStarting>(adapted);

            Assert.Equal(TestAssemblyUniqueID, v3Message.AssemblyUniqueID);
            Assert.Equal("skip-reason", v3Message.SkipReason);
            Assert.Equal("source-file", v3Message.SourceFilePath);
            Assert.Equal(2112, v3Message.SourceLineNumber);
            Assert.Equal("test-case-display-name", v3Message.TestCaseDisplayName);
            Assert.Equal(TestClassUniqueID, v3Message.TestClassUniqueID);
            Assert.Equal(TestCollectionUniqueID, v3Message.TestCollectionUniqueID);
            Assert.Equal(TestMethodUniqueID, v3Message.TestMethodUniqueID);
            Assert.Equal(TestCaseUniqueID, v3Message.TestCaseUniqueID);
            Assert.Collection(
                v3Message.Traits.OrderBy(kvp => kvp.Key),
                trait =>
            {
                Assert.Equal("key1", trait.Key);
                Assert.Equal(new[] { "value1a", "value1b" }, trait.Value);
            },
                trait =>
            {
                Assert.Equal("key2", trait.Key);
                Assert.Equal(new[] { "value2" }, trait.Value);
            },
                trait =>
            {
                Assert.Equal("key3", trait.Key);
                Assert.Empty(trait.Value);
            }
                );
        }