public static void SkipReason() { var factAttribute = Mocks.FactAttribute(skip: "Skip Reason"); var testMethod = Mocks.TestMethod(methodAttributes: new[] { factAttribute }); var testCase = new TestableXunitTestCase(testMethod); Assert.Equal("Skip Reason", testCase.SkipReason); }
public static void Timeout() { var factAttribute = Mocks.FactAttribute(timeout: 42); var testMethod = Mocks.TestMethod(methodAttributes: new[] { factAttribute }); var testCase = new TestableXunitTestCase(testMethod); Assert.Equal(42, testCase.Timeout); }
public static void DisplayName() { var factAttribute = Mocks.FactAttribute(displayName: "Custom Display Name"); var testMethod = Mocks.TestMethod(methodAttributes: new[] { factAttribute }); var testCase = new TestableXunitTestCase(testMethod); Assert.Equal("Custom Display Name", testCase.DisplayName); }
public static void TraitsOnTestClass() { var trait1 = Mocks.TraitAttribute("Trait1", "Value1"); var trait2 = Mocks.TraitAttribute("Trait2", "Value2"); var testMethod = Mocks.TestMethod(classAttributes: new[] { trait1, trait2 }); var testCase = new TestableXunitTestCase(testMethod); Assert.Equal("Value1", Assert.Single(testCase.Traits["Trait1"])); Assert.Equal("Value2", Assert.Single(testCase.Traits["Trait2"])); }
public static void DisplayNameWithArguments() { var factAttribute = Mocks.FactAttribute(displayName: "Custom Display Name"); var param1 = Mocks.ParameterInfo("p1"); var param2 = Mocks.ParameterInfo("p2"); var param3 = Mocks.ParameterInfo("p3"); var testMethod = Mocks.TestMethod(methodAttributes: new[] { factAttribute }, parameters: new[] { param1, param2, param3 }); var arguments = new object[] { 42, "Hello, world!", 'A' }; var testCase = new TestableXunitTestCase(testMethod, arguments); Assert.Equal("Custom Display Name(p1: 42, p2: \"Hello, world!\", p3: 'A')", testCase.DisplayName); }
public static void CustomTraitWithoutDiscoverer() { var trait = Mocks.TraitAttribute <BadTraitAttribute>(); var testMethod = Mocks.TestMethod(classAttributes: new[] { trait }); var messages = new List <_MessageSinkMessage>(); var spy = SpyMessageSink.Create(messages: messages); var testCase = new TestableXunitTestCase(testMethod, diagnosticMessageSink: spy); Assert.Empty(testCase.Traits); var diagnosticMessages = messages.OfType <_DiagnosticMessage>(); var diagnosticMessage = Assert.Single(diagnosticMessages); Assert.Equal($"Trait attribute on '{testCase.DisplayName}' did not have [TraitDiscoverer]", diagnosticMessage.Message); }
public static void CustomTraitWithoutDiscoverer() { var spy = SpyMessageSink.Capture(); TestContext.Current !.DiagnosticMessageSink = spy; var trait = Mocks.TraitAttribute <BadTraitAttribute>(); var testMethod = Mocks.TestMethod(classAttributes: new[] { trait }); var testCase = new TestableXunitTestCase(testMethod); Assert.Empty(testCase.Traits); var diagnosticMessages = spy.Messages.OfType <_DiagnosticMessage>(); var diagnosticMessage = Assert.Single(diagnosticMessages); Assert.Equal($"Trait attribute on '{testCase.TestCaseDisplayName}' did not have [TraitDiscoverer]", diagnosticMessage.Message); }
public void ReturnsCorrectCustomAttributes(Type classType, IEnumerable <string> expectedTraits) { var testAssembly = new TestAssembly(new ReflectionAssemblyInfo(classType.Assembly)); var testCollection = new TestCollection(testAssembly, null, "Trait inheritance tests"); var @class = new ReflectionTypeInfo(classType); var testClass = new TestClass(testCollection, @class); var methodInfo = new ReflectionMethodInfo(classType.GetMethod("TraitsTest") !); var testMethod = new TestMethod(testClass, methodInfo); var testCase = new TestableXunitTestCase(testMethod); var testTraits = testCase.Traits["Test"]; Assert.NotNull(testTraits); foreach (var expectedTrait in expectedTraits) { Assert.Contains(expectedTrait, testTraits); } }