public IEnumerable<ITestCommand> CreateTestCommands(IMethodInfo testMethod, IFixtureSet fixtureSet)
 {
     foreach (var command in MethodUtility.GetTestCommands(testMethod))
     {
         yield return new ParadigmTestCommand(testMethod, fixtureSet.ApplyFixturesToCommand(command), GetNameFor(command), new ConstructorInvokingObjectFactory(_testClassType.Type, _parameters.Select(x => x.Value).ToArray()));
     }
 }
 public static void PlayAllFixtures(IFixtureSet fixtureSet)
 {
     var fixtures = new List<Fixture>();
     fixtureSet.ScheduleFixtures(fixtures.Add);
     fixtures.ForEach(f => fixtureSet.ApplyResult(A.MatchResult.ForFixture(f).Build()));
 }
        public void ExceptionThrownDuringFixtureSetDisposeIsReturnedButNotThrown(
            [Frozen] IFixtureSetFactory fixtureSetFactory,
            ParadigmTestClassCommand sut,
            IFixtureSet fixtureSet,
            Exception expected
            )
        {
            Mock.Get(fixtureSetFactory).Setup(x => x.CreateFixturesFor(sut.TypeUnderTest))
                .Returns(fixtureSet);

            sut.ClassStart();

            Mock.Get(fixtureSet).Setup(x => x.Dispose()).Throws(expected);
            var result = sut.ClassFinish();

            Assert.Same(expected, result);
        }
        public void FixtureSetIsDisposedOnClassFinish (
            [Frozen] IFixtureSetFactory fixtureSetFactory,
            ParadigmTestClassCommand sut,
            IFixtureSet fixtureSet)
        {
            Mock.Get(fixtureSetFactory).Setup(x => x.CreateFixturesFor(sut.TypeUnderTest))
                .Returns(fixtureSet);

            sut.ClassStart();

            Mock.Get(fixtureSet).Verify(x => x.Dispose(), Times.Never());
            var result = sut.ClassFinish();
            Mock.Get(fixtureSet).Verify(x => x.Dispose());

            Assert.Null(result);
        }
        public void CreatedFixtureSetIsUsedToCreateTestCommands(
            [Frozen] IExemplarFactory exemplarFactory,
            [Frozen] IFixtureSetFactory fixtureSetFactory,
            ParadigmTestClassCommand sut,
            IParadigmExemplar[] exemplars,
            IEnumerable<ITestCommand>[] createdCommands,
            IFixtureSet fixtureSet,
            IMethodInfo methodInfo)
        {
            Mock.Get(exemplarFactory).Setup(x => x.CreateExemplarsFor(sut.TypeUnderTest))
                .Returns(exemplars);

            for (var i = 0; i < exemplars.Length; i++)
            {
                Mock.Get(exemplars[i]).Setup(x => x.CreateTestCommands(It.IsAny<IMethodInfo>(), fixtureSet))
                    .Returns(createdCommands[i]);
            }

            Mock.Get(fixtureSetFactory).Setup(x => x.CreateFixturesFor(sut.TypeUnderTest))
                .Returns(fixtureSet);

            sut.ClassStart();

            var commands = sut.EnumerateTestCommands(methodInfo);

            Assert.Equal(createdCommands.SelectMany(x => x), commands);
        }
        public void FixtureSetIsCreatedDuringClassStart(
            [Frozen] IFixtureSetFactory fixtureSetFactory,
            ParadigmTestClassCommand sut,
            IFixtureSet fixtureSet)
        {
            Mock.Get(fixtureSetFactory).Setup(x => x.CreateFixturesFor(sut.TypeUnderTest))
                .Returns(fixtureSet);

            var result = sut.ClassStart();

            Assert.Null(result);
            Assert.Same(fixtureSet, sut.FixtureSet);
        }