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); }
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()); }