Ejemplo n.º 1
0
        internal static IEnumerable <TestData> Create(MethodInfo testMethod, object testObject, IMemberAccessor[] accessors)
        {
            if (accessors.Length == 1)
            {
                return(Create(testMethod, testObject, accessors[0]));
            }

            if (testMethod.GetParameters().Length != accessors.Length)
            {
                throw SpecFailure.MultiAccessorsTheoryParameterMismatch();
            }

            // TODO It would be better to enforce IEnumerable instead of failing with cast

            var elements = accessors
                           .Select(t => ((IEnumerable)t.GetValue(testObject)).Cast <object>().ToArray())
                           .ToList();

            var actualData = Combinatorial(elements)
                             .Select(t => new TestData(t));

            return(actualData);
        }