private IEnumerable <Mutant> SetupMutations(OriginalCodebase original, List <FilePathAbsolute> paths, List <string> toMutate, List <IMutationOperator> operators, MethodIdentifier method = null) { var options = new OptionsModel(); options.OtherParams = "--debugfiles true"; _kernel.Bind <IProjectClonesManager>().To <ProjectClonesManager>().InSingletonScope(); _kernel.Bind <ProjectFilesClone>().ToSelf().AndFromFactory(); _kernel.Bind <FilesManager>().ToSelf().InSingletonScope(); _kernel.Bind <TestServiceManager>().ToSelf().InSingletonScope(); _kernel.Bind <XUnitTestService>().ToSelf().InSingletonScope(); _kernel.Bind <XUnitResultsParser>().ToSelf().InSingletonScope(); _kernel.Bind <WhiteCache>().ToSelf().AndFromFactory(); _kernel.Bind <INUnitWrapper>().To <NUnitWrapper>().InSingletonScope(); _kernel.Bind <OriginalCodebase>().ToConstant(original); _kernel.Bind <ICodeDifferenceCreator>().To <CodeDifferenceCreator>().InSingletonScope(); _kernel.Bind <ICodeVisualizer>().To <CodeVisualizer>().InSingletonScope(); _kernel.Bind <IMutantsCache>().To <MutantsCache>().InSingletonScope(); _kernel.Bind <NUnitTestsRunContext>().ToSelf().AndFromFactory(); _kernel.Bind <XUnitTestsRunContext>().ToSelf().AndFromFactory(); _kernel.Bind <OptionsModel>().ToConstant(options); _kernel.Bind <IMutationExecutor>().To <MutationExecutor>().InSingletonScope(); _kernel.Bind <TestingMutant>().ToSelf().AndFromFactory(); _kernel.Bind <TestLoader>().ToSelf().AndFromFactory(); _kernel.BindMock <IHostEnviromentConnection>(mock => { mock.Setup(_ => _.GetProjectAssemblyPaths()).Returns(paths); mock.Setup(_ => _.GetTempPath()).Returns(Path.GetTempPath()); }); _kernel.Get <ISettingsManager>()["NUnitConsoleDirPath"] = TestProjects.NUnitConsoleDirPath; _kernel.Get <ISettingsManager>()["XUnitConsoleDirPath"] = TestProjects.XUnitConsoleDirPath; _kernel.Bind <IWhiteSource>().ToConstant(new WhiteDummy(toMutate)); var testsClone = _kernel.Get <IProjectClonesManager>().CreateClone("Tests"); var testsTask = _kernel.Get <TestsLoader>().LoadTests(testsClone.Assemblies.AsStrings().ToList()); var strategy = new AllTestsSelectStrategy(testsTask); var choices = new MutationSessionChoices { Filter = method == null?MutationFilter.AllowAll() : new MutationFilter( new List <TypeIdentifier>(), method.InList()), SelectedOperators = operators, TestAssemblies = strategy.SelectTests(null).Result }; _kernel.Bind <MutationSessionChoices>().ToConstant(choices); var exec = _kernel.Get <MutationExecutor>(); var container = new MutantsContainer(exec, original); IList <AssemblyNode> assemblies = container.InitMutantsForOperators(ProgressCounter.Inactive()); var mutants = assemblies.Cast <CheckedNode>() .SelectManyRecursive(n => n.Children ?? new NotifyingCollection <CheckedNode>()) .OfType <Mutant>();//.Take(4); return(mutants); }
private IEnumerable<Mutant> SetupMutations(OriginalCodebase original, List<FilePathAbsolute> paths, List<string> toMutate, List<IMutationOperator> operators, MethodIdentifier method= null) { var options = new OptionsModel(); options.OtherParams = "--debugfiles true"; _kernel.Bind<IProjectClonesManager>().To<ProjectClonesManager>().InSingletonScope(); _kernel.Bind<ProjectFilesClone>().ToSelf().AndFromFactory(); _kernel.Bind<FilesManager>().ToSelf().InSingletonScope(); _kernel.Bind<TestServiceManager>().ToSelf().InSingletonScope(); _kernel.Bind<XUnitTestService>().ToSelf().InSingletonScope(); _kernel.Bind<XUnitResultsParser>().ToSelf().InSingletonScope(); _kernel.Bind<WhiteCache>().ToSelf().AndFromFactory(); _kernel.Bind<INUnitWrapper>().To<NUnitWrapper>().InSingletonScope(); _kernel.Bind<OriginalCodebase>().ToConstant(original); _kernel.Bind<ICodeDifferenceCreator>().To<CodeDifferenceCreator>().InSingletonScope(); _kernel.Bind<ICodeVisualizer>().To<CodeVisualizer>().InSingletonScope(); _kernel.Bind<IMutantsCache>().To<MutantsCache>().InSingletonScope(); _kernel.Bind<NUnitTestsRunContext>().ToSelf().AndFromFactory(); _kernel.Bind<XUnitTestsRunContext>().ToSelf().AndFromFactory(); _kernel.Bind<OptionsModel>().ToConstant(options); _kernel.Bind<IMutationExecutor>().To<MutationExecutor>().InSingletonScope(); _kernel.Bind<TestingMutant>().ToSelf().AndFromFactory(); _kernel.Bind<TestLoader>().ToSelf().AndFromFactory(); _kernel.BindMock<IHostEnviromentConnection>(mock => { mock.Setup(_ => _.GetProjectAssemblyPaths()).Returns(paths); mock.Setup(_ => _.GetTempPath()).Returns(Path.GetTempPath()); }); _kernel.Get<ISettingsManager>()["NUnitConsoleDirPath"] = TestProjects.NUnitConsoleDirPath; _kernel.Get<ISettingsManager>()["XUnitConsoleDirPath"] = TestProjects.XUnitConsoleDirPath; _kernel.Bind<IWhiteSource>().ToConstant(new WhiteDummy(toMutate)); var testsClone = _kernel.Get<IProjectClonesManager>().CreateClone("Tests"); var testsTask = _kernel.Get<TestsLoader>().LoadTests(testsClone.Assemblies.AsStrings().ToList()); var strategy = new AllTestsSelectStrategy(testsTask); var choices = new MutationSessionChoices { Filter = method == null ? MutationFilter.AllowAll() : new MutationFilter( new List<TypeIdentifier>(), method.InList()), SelectedOperators = operators, TestAssemblies = strategy.SelectTests(null).Result }; _kernel.Bind<MutationSessionChoices>().ToConstant(choices); var exec = _kernel.Get<MutationExecutor>(); var container = new MutantsContainer(exec, original); IList<AssemblyNode> assemblies = container.InitMutantsForOperators(ProgressCounter.Inactive()); var mutants = assemblies.Cast<CheckedNode>() .SelectManyRecursive(n => n.Children ?? new NotifyingCollection<CheckedNode>()) .OfType<Mutant>();//.Take(4); return mutants; }