IScriptModuleRepository GetMockedScriptModuleRepositoryForDependencyGraph(IEnumerable<string> dependencyGraph, out ModuleInfo mainModule) { var moduleRepo = new Moq.Mock<IScriptModuleRepository>(); foreach (var moduleInfo in GetModuleArrayFromDependencyGraph(dependencyGraph, out mainModule)) { moduleRepo.Setup((repo) => repo.GetModule(moduleInfo.Name)).Returns(moduleInfo); } return moduleRepo.Object; }
IEnumerable<ModuleInfo> GetModuleArrayFromDependencyGraph(IEnumerable<string> dependencyGraph, out ModuleInfo mainModule) { var modules = new List<ModuleInfo>(); mainModule = null; var first = true; foreach (var module in dependencyGraph) { var parts = module.Split(new []{"=>"}, StringSplitOptions.None); var moduleInfo = BuildModuleInfo(parts[0], parts[1]); if(first && !(first=false)) mainModule = moduleInfo; modules.Add(BuildModuleInfo(parts[0], parts[1])); } return modules; }