public ContextFactory(MSpecUnitTestProvider provider,
                       IUnitTestElementManager manager,
                       IPsi psiModuleManager,
                       ICache cacheManager,
                       ElementCache cache)
 {
   _manager = manager;
   _psiModuleManager = psiModuleManager;
   _cacheManager = cacheManager;
   _provider = provider;
   _cache = cache;
 }
 public ContextSpecificationFactory(MSpecUnitTestProvider provider,
                                    IUnitTestElementManager manager,
                                    PsiModuleManager psiModuleManager,
                                    CacheManager cacheManager,
                                    IProject project,
                                    ProjectModelElementEnvoy projectEnvoy,
                                    ElementCache cache)
 {
   _manager = manager;
   _psiModuleManager = psiModuleManager;
   _cacheManager = cacheManager;
   _provider = provider;
   _cache = cache;
   _project = project;
   _projectEnvoy = projectEnvoy;
 }
 public ContextSpecificationFactory(MSpecUnitTestProvider provider,
                                    IUnitTestElementManager manager,
                                    PsiModuleManager psiModuleManager,
                                    CacheManager cacheManager,
                                    IProject project,
                                    ProjectModelElementEnvoy projectEnvoy,
                                    ElementCache cache)
 {
     _manager          = manager;
     _psiModuleManager = psiModuleManager;
     _cacheManager     = cacheManager;
     _provider         = provider;
     _cache            = cache;
     _project          = project;
     _projectEnvoy     = projectEnvoy;
 }
 public ContextFactory(MSpecUnitTestProvider provider,
                       IUnitTestElementManager manager,
                       PsiModuleManager psiModuleManager,
                       CacheManager cacheManager,
                       IProject project,
                       ProjectModelElementEnvoy projectEnvoy,
                       string assemblyPath,
                       ElementCache cache)
 {
     _manager          = manager;
     _psiModuleManager = psiModuleManager;
     _cacheManager     = cacheManager;
     _provider         = provider;
     _cache            = cache;
     _project          = project;
     _projectEnvoy     = projectEnvoy;
     _assemblyPath     = assemblyPath;
 }
 public ContextFactory(MSpecUnitTestProvider provider,
                       IUnitTestElementManager manager,
                       PsiModuleManager psiModuleManager,
                       CacheManager cacheManager,
                       IProject project,
                       ProjectModelElementEnvoy projectEnvoy,
                       string assemblyPath,
                       ElementCache cache)
 {
   _manager = manager;
   _psiModuleManager = psiModuleManager;
   _cacheManager = cacheManager;
   _provider = provider;
   _cache = cache;
   _project = project;
   _projectEnvoy = projectEnvoy;
   _assemblyPath = assemblyPath;
 }
    public AssemblyExplorer(MSpecUnitTestProvider provider,
                            IUnitTestElementManager manager,
                            PsiModuleManager psiModuleManager,
                            CacheManager cacheManager,
                            IMetadataAssembly assembly,
                            IProject project,
                            UnitTestElementConsumer consumer)
    {
      _assembly = assembly;
      _consumer = consumer;

      using (ReadLockCookie.Create())
      {
        var projectEnvoy = new ProjectModelElementEnvoy(project);

        var cache = new ElementCache();
        _contextFactory = new ContextFactory(provider, manager, psiModuleManager, cacheManager, project, projectEnvoy, _assembly.Location.FullPath, cache);
        _contextSpecificationFactory = new ContextSpecificationFactory(provider, manager, psiModuleManager, cacheManager, project, projectEnvoy, cache);
        _behaviorFactory = new BehaviorFactory(provider, manager, psiModuleManager, cacheManager, project, projectEnvoy, cache);
        _behaviorSpecificationFactory = new BehaviorSpecificationFactory(provider, manager, psiModuleManager, cacheManager, project, projectEnvoy);
      }
    }
    public FileExplorer(MSpecUnitTestProvider provider,
                        IUnitTestElementManager manager,
                        PsiModuleManager psiModuleManager,
                        CacheManager cacheManager,
                        UnitTestElementLocationConsumer consumer,
                        IFile file,
                        CheckForInterrupt interrupted)
    {
      if (file == null)
      {
        throw new ArgumentNullException("file");
      }

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

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

      var project = file.GetSourceFile().ToProjectFile().GetProject();
      var projectEnvoy = new ProjectModelElementEnvoy(project);
      var assemblyPath = UnitTestManager.GetOutputAssemblyPath(project).FullPath;

      var cache = new ElementCache();

      var contextFactory = new ContextFactory(provider,
                                              manager,
                                              psiModuleManager,
                                              cacheManager,
                                              project,
                                              projectEnvoy,
                                              assemblyPath,
                                              cache);
      var contextSpecificationFactory = new ContextSpecificationFactory(provider,
                                                                        manager,
                                                                        psiModuleManager,
                                                                        cacheManager,
                                                                        project,
                                                                        projectEnvoy,
                                                                        cache);
      var behaviorFactory = new BehaviorFactory(provider,
                                                manager,
                                                psiModuleManager,
                                                cacheManager,
                                                project,
                                                projectEnvoy,
                                                cache);
      var behaviorSpecificationFactory = new BehaviorSpecificationFactory(provider,
                                                                          manager,
                                                                          psiModuleManager,
                                                                          cacheManager,
                                                                          project,
                                                                          projectEnvoy);

      _elementHandlers = new List<IElementHandler>
                         {
                           new ContextElementHandler(contextFactory),
                           new ContextSpecificationElementHandler(contextSpecificationFactory),
                           new BehaviorElementHandler(behaviorFactory, behaviorSpecificationFactory)
                         };
    }