Example #1
0
        public void Should_Create_Error_Test_Case_If_Exception_Is_Thrown_During_Discoverery()
        {
            var exceptionMessage = "Discovery exception";
            var exception        = new DiscoverException(exceptionMessage);

            var messageSink = new Mock <IMessageSink>().Object;
            var testFrameworkDiscoveryOptions = new Mock <ITestFrameworkDiscoveryOptions>().Object;
            var testMethod = new Mock <ITestMethod>().Object;

            var discoverer = new ConditionalFactDiscoverer(messageSink);

            var mockedErrorTestCase = new Mock <IXunitTestCase>().Object;
            var mockTestCaseFactory = new Mock <ITestCaseFactory>();

            mockTestCaseFactory.Setup(tcf => tcf.CreateError(exceptionMessage, messageSink, testFrameworkDiscoveryOptions, testMethod)).Returns(mockedErrorTestCase);
            discoverer.TestCaseFactory = mockTestCaseFactory.Object;

            var mockSkipLogicFactory = new Mock <ISkipLogicFactory>();
            var notSkipLogic         = new Mock <ISkipLogic>();

            notSkipLogic.Setup(l => l.GetSkipReason(It.IsAny <TestMethod>())).Returns <string>(null);
            mockSkipLogicFactory.Setup(f => f.CreateOrDefault(It.IsAny <Type>())).Returns(notSkipLogic.Object);
            discoverer.SkipLogicFactory = mockSkipLogicFactory.Object;

            var mockDiscovererProvider = new Mock <IXunitTestCaseDiscovererProvider>();

            mockDiscovererProvider.Setup(p => p.Provide(It.IsAny <ConditionalFact>(), It.IsAny <IMessageSink>())).Throws(exception);
            discoverer.DiscovererProvider = mockDiscovererProvider.Object;

            var attributeInfo       = GetReflectionAttributeInfo_DiscovererType(FakeDiscoverer.Type);
            var discoveredTestCases = discoverer.Discover(testFrameworkDiscoveryOptions, testMethod, attributeInfo);

            Assert.Single(discoveredTestCases);
            Assert.Same(mockedErrorTestCase, discoveredTestCases.First());
        }
        private void Discover_No_Skip(IReflectionAttributeInfo reflectionAttributeInfo, IAttributeInfo expectedAttributeInfo, Action <ConditionalFactDiscoverer> furtherSetup = null)
        {
            var conditionalFact = reflectionAttributeInfo.Attribute as ConditionalFact;

            var conditionalFactDiscoverer = new ConditionalFactDiscoverer(mockedMessageSink);

            SetUpSkipLogic(conditionalFactDiscoverer, It.IsAny <Type>(), null);

            var mockWrappedDiscoverer = new Mock <IXunitTestCaseDiscoverer>();

            if (expectedAttributeInfo == null)
            {
                //this is a gotcha - cannot pass in It.IsAny()!
                mockWrappedDiscoverer.Setup(d => d.Discover(mockedTestFrameworkDiscoveryOptions, mockedTestMethod, It.IsAny <IAttributeInfo>())).Returns(testCasesFromWrappedDiscoverer);
            }
            else
            {
                mockWrappedDiscoverer.Setup(d => d.Discover(mockedTestFrameworkDiscoveryOptions, mockedTestMethod, expectedAttributeInfo)).Returns(testCasesFromWrappedDiscoverer);
            }

            var mockDiscovererProvider = new Mock <IXunitTestCaseDiscovererProvider>();

            mockDiscovererProvider.Setup(p => p.Provide(conditionalFact, mockedMessageSink)).Returns(mockWrappedDiscoverer.Object);
            conditionalFactDiscoverer.DiscovererProvider = mockDiscovererProvider.Object;

            if (furtherSetup != null)
            {
                furtherSetup(conditionalFactDiscoverer);
            }
            var testCases = conditionalFactDiscoverer.Discover(mockedTestFrameworkDiscoveryOptions, mockedTestMethod, reflectionAttributeInfo);

            Assert.Equal(testCasesFromWrappedDiscoverer, testCases);
        }
Example #3
0
        public void Should_Create_A_SkippedTestCase_If_Skip_Logic_Returns_A_Skip_Reason()
        {
            var conditionalFactDiscoverer = new ConditionalFactDiscoverer(mockedMessageSink);

            var skipReason = "A skip reason";

            SetUpSkipLogic(conditionalFactDiscoverer, FakeSkipLogic.Type, skipReason);
            var mockTestCaseFactory = new Mock <ITestCaseFactory>();
            var skipTestCase        = new FakeTestCase();

            mockTestCaseFactory.Setup(f => f.CreateSkip(skipReason, mockedMessageSink, mockedTestFrameworkDiscoveryOptions, mockedTestMethod)).Returns(skipTestCase);
            conditionalFactDiscoverer.TestCaseFactory = mockTestCaseFactory.Object;

            var testCases = conditionalFactDiscoverer.Discover(mockedTestFrameworkDiscoveryOptions, mockedTestMethod, GetReflectionAttributeInfo_DiscovererType(null, FakeSkipLogic.Type));

            Assert.Single(testCases);
            Assert.Same(skipTestCase, testCases.First());
        }