private static void ExtractParameterizedMethodsAndTheories(NUnitDiscoveryTestFixture tf, XElement node) { const string parameterizedMethod = "ParameterizedMethod"; const string theory = "Theory"; foreach (var child in node.Elements("test-suite")) { var type = child.Attribute(NUnitXmlAttributeNames.Type)?.Value; if (type != parameterizedMethod && type != "Theory" && type != "GenericMethod") { throw new DiscoveryException($"Expected ParameterizedMethod, Theory or GenericMethod, but was {type}"); } var className = child.Attribute(NUnitXmlAttributeNames.Classname)?.Value; var btf = ExtractSuiteBasePropertiesClass(child); switch (type) { case parameterizedMethod: { var tc = new NUnitDiscoveryParameterizedMethod(btf, className, tf); ExtractTestCases(tc, child); tf.AddParameterizedMethod(tc); break; } case theory: { var tc = new NUnitDiscoveryTheory(btf, className, tf); tf.AddTheory(tc); ExtractTestCases(tc, child); break; } default: { var tc = new NUnitDiscoveryGenericMethod(btf, className, tf); tf.AddGenericMethod(tc); ExtractTestCases(tc, child); break; } } } }
public void AddTheory(NUnitDiscoveryTheory tc) { theories.Add(tc); }