public FileExplorer(MSpecUnitTestProvider provider,
                            ElementFactories factories,
                            IFile file,
                            IUnitTestElementsObserver consumer,
                            Func<bool> interrupted)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }

            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            this._consumer = consumer;
            this._file = file;
            this._interrupted = interrupted;

            var project = file.GetSourceFile().ToProjectFile().GetProject();

            this._assemblyPath = project.GetOutputFilePath().FullPath;

            this._elementHandlers = new List<IElementHandler>
                         {
                           new ContextElementHandler(factories),
                           new ContextSpecificationElementHandler(factories),
                           new BehaviorElementHandler(factories)
                         };
        }
        public MSpecTestElementsSource(MSpecUnitTestProvider provider, AssemblyExplorer assemblyExplorer, ElementFactories elementFactories, IShellLocks shellLocks)
        {
            this._provider = provider;
            this._assemblyExplorer = assemblyExplorer;
            this._elementFactories = elementFactories;

            _metadataElementsSource = new MetadataElementsSource(Logger.GetLogger(typeof(MSpecTestElementsSource)),
                shellLocks);
        }
 public MspecTestFileExplorer(MSpecUnitTestProvider provider,
                              ElementFactories factories)
 {
     this._provider = provider;
     this._factories = factories;
 }
 public ContextElementHandler(ElementFactories factories)
 {
     this._factory = factories.Contexts;
 }
 public ContextSpecificationElementHandler(ElementFactories factories)
 {
     this._factory = factories.ContextSpecifications;
 }
 public AssemblyExplorer(ElementFactories factories)
 {
     this._factories = factories;
 }