static object[] GetTestMethodArguments(ITestMethod testMethod, int attributeNumber, int rowNumber, IMessageSink diagnosticMessageSink) { try { IAttributeInfo dataAttribute = testMethod.Method.GetCustomAttributes(typeof(DataAttribute)) .Where((x, i) => i == attributeNumber) .FirstOrDefault(); if (dataAttribute == null) { return(null); } IAttributeInfo discovererAttribute = dataAttribute.GetCustomAttributes(typeof(DataDiscovererAttribute)).First(); IDataDiscoverer discoverer = ExtensibilityPointFactory.GetDataDiscoverer(diagnosticMessageSink, discovererAttribute); return (discoverer.GetData(dataAttribute, testMethod.Method) .Where((x, i) => i == rowNumber) .FirstOrDefault()); } catch { return(null); } }
static object[] GetTestMethodArguments(ITestMethod testMethod, int attributeNumber, string rowName, IMessageSink diagnosticMessageSink) { try { IAttributeInfo dataAttribute = testMethod.Method.GetCustomAttributes(typeof(DataAttribute)).Where((x, i) => i == attributeNumber).FirstOrDefault(); if (dataAttribute == null) { return(null); } IAttributeInfo discovererAttribute = dataAttribute.GetCustomAttributes(typeof(DataDiscovererAttribute)).First(); IDataDiscoverer discoverer = ExtensibilityPointFactory.GetDataDiscoverer(diagnosticMessageSink, discovererAttribute); IEnumerable <object[]> data = discoverer.GetData(dataAttribute, testMethod.Method); if (data is IDictionary <string, object[]> ) { return(((IDictionary <string, object[]>)data)[rowName]); } return(data.Where(x => x[0].ToString() == rowName).FirstOrDefault()); } catch { return(null); } }