public void ModuleIfOmitCapacity() { var wareXml = @" <wares> <ware id=""module_arg_prod_foodrations_01"" name=""{20104,13401}"" tags=""module""> <component ref=""prod_arg_foodrations_macro"" /> </ware> </wares> ".ToXDocument(); var macroXml = @" <macros> <macro class=""production""> <properties> <workforce max=""90"" /> </properties> </macro> </macros> ".ToXDocument(); var exporter = new ModuleExporter(new DummyCat(macroXml), wareXml); Assert.Equal(exporter.GetRecords(), new[] { new Module( moduleID: "module_arg_prod_foodrations_01", moduleTypeID: "production", macro: "prod_arg_foodrations_macro", maxWorkers: 90, workersCapacity: 0, noBlueprint: false, thumbnail: null ) }); }
public void ModuleIfOmitMaxWorkers() { var wareXml = @" <wares> <ware id=""module_arg_hab_l_01"" name=""{20104,30301}"" tags=""module""> <component ref=""hab_arg_l_01_macro"" /> </ware> </wares> ".ToXDocument(); var macroXml = @" <macros> <macro class=""habitation""> <properties> <workforce capacity=""1000"" /> </properties> </macro> </macros> ".ToXDocument(); var exporter = new ModuleExporter(new DummyCat(macroXml), wareXml); Assert.Equal(exporter.GetRecords(), new[] { new Module( moduleID: "module_arg_hab_l_01", moduleTypeID: "habitation", macro: "hab_arg_l_01_macro", maxWorkers: 0, workersCapacity: 1000, noBlueprint: false, thumbnail: null ) }); }
public void Initialize(Microsoft.Vbe.Interop.VBE vbe) { if (_parser != null) { throw new InvalidOperationException("ParserState is already initialized."); } _vbe = new VBE(vbe); _vbeEvents = VBEEvents.Initialize(_vbe); var declarationFinderFactory = new ConcurrentlyConstructedDeclarationFinderFactory(); var projectRepository = new ProjectsRepository(_vbe); _state = new RubberduckParserState(null, projectRepository, declarationFinderFactory, _vbeEvents); _state.StateChanged += _state_StateChanged; var exporter = new ModuleExporter(); Func <IVBAPreprocessor> preprocessorFactory = () => new VBAPreprocessor(double.Parse(_vbe.Version, CultureInfo.InvariantCulture)); _attributeParser = new AttributeParser(exporter, preprocessorFactory, _state.ProjectsProvider); var projectManager = new RepositoryProjectManager(projectRepository); var moduleToModuleReferenceManager = new ModuleToModuleReferenceManager(); var parserStateManager = new ParserStateManager(_state); var referenceRemover = new ReferenceRemover(_state, moduleToModuleReferenceManager); var supertypeClearer = new SupertypeClearer(_state); var comSynchronizer = new COMReferenceSynchronizer(_state, parserStateManager); var builtInDeclarationLoader = new BuiltInDeclarationLoader( _state, new List <ICustomDeclarationLoader> { new DebugDeclarations(_state), new SpecialFormDeclarations(_state), new FormEventDeclarations(_state), new AliasDeclarations(_state), //new RubberduckApiDeclarations(_state) } ); var parseRunner = new ParseRunner( _state, parserStateManager, preprocessorFactory, _attributeParser, exporter); var declarationResolveRunner = new DeclarationResolveRunner( _state, parserStateManager, comSynchronizer); var referenceResolveRunner = new ReferenceResolveRunner( _state, parserStateManager, moduleToModuleReferenceManager, referenceRemover); var parsingStageService = new ParsingStageService( comSynchronizer, builtInDeclarationLoader, parseRunner, declarationResolveRunner, referenceResolveRunner ); var parsingCacheService = new ParsingCacheService( _state, moduleToModuleReferenceManager, referenceRemover, supertypeClearer ); _parser = new ParseCoordinator( _state, parsingStageService, parsingCacheService, projectManager, parserStateManager ); }