Ejemplo n.º 1
0
        /// <inheritdoc />
        public override IEnumerable <object[]> GetData(MethodInfo testMethod)
        {
            // TODO JMH Is this needed?
            //var dataSourceAttributes = testMethod.GetCustomAttributes().OfType<ITestDataSource>().Where(dataSourceAttribute => !(dataSourceAttribute is AutoDataAttribute));
            //if (dataSourceAttributes.Any())
            //    return base.Execute(testMethod);

            // If there are no other ITestDataSource attributes on this test method, then use AutoFixture to generate the arguments for a single test run.
            var testMethodInfo = testMethod.ToTestMethodInfo();

            var fixture   = TestMethodFixtureSource.GetFixture(testMethodInfo);
            var arguments = TestMethodArgumentResolver.GetTestMethodArguments(fixture, testMethodInfo);

            return(new[] { arguments.ToArray() });
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public override TestResult[] Execute(ITestMethod testMethod)
        {
            var dataSourceAttributes = testMethod.MethodInfo.GetCustomAttributes().OfType <ITestDataSource>().Where(dataSourceAttribute => !(dataSourceAttribute is AutoDataAttribute));

            if (dataSourceAttributes.Any())
            {
                return(base.Execute(testMethod));
            }

            // If there are no other ITestDataSource attributes on this test method, then use AutoFixture to generate the arguments for a single test run.
            var testMethodInfo = testMethod.ToTestMethodInfo();

            var fixture   = TestMethodFixtureSource.GetFixture(testMethodInfo);
            var arguments = TestMethodArgumentResolver.GetTestMethodArguments(fixture, testMethodInfo);

            return(new[] { testMethod.Invoke(arguments.ToArray()) });
        }
Ejemplo n.º 3
0
        /// <inheritdoc />
        public IEnumerable <object[]> GetData(MethodInfo methodInfo)
        {
            var numberOfInlineData   = Data.Length;
            var parameters           = methodInfo.GetParameters();
            var numberOfParameters   = parameters.Length;
            var numberToAutoGenerate = numberOfParameters - numberOfInlineData;

            if (numberToAutoGenerate <= 0)
            {
                return new[] { Data }
            }
            ;

            var arguments      = new List <object>(Data);
            var testMethodInfo = methodInfo.ToTestMethodInfo().IgnoreParameters(numberOfInlineData);
            var fixture        = TestMethodFixtureSource.GetFixture(testMethodInfo);

            arguments.AddRange(TestMethodArgumentResolver.GetTestMethodArguments(fixture, testMethodInfo));
            return(new[] { arguments.ToArray() });
        }