public void GetProductNameExactMatch() { var a = new DefaultSuiteContentsAnalyzer(suite); var mod1 = suite.GetModule("mod1"); var mod2 = suite.GetModule("mod2"); var mod3 = suite.GetModule("mod3"); var prod1 = suite.GetProduct("prod1"); prod1.AddModule(mod2); prod1.AddModule(mod3); a.GetProductName(new[] { mod3, mod2 }).Should().Be("prod1"); }
public void SetUp() { fallback = new Mock <ISlnNameGenerator>(); suite = new Suite(new TestFileSystemDirectory("root")); suiteContents = new DefaultSuiteContentsAnalyzer(suite); generator = new ReadableSlnNameGenerator(fallback.Object, suiteContents); fallback.Setup(f => f.GetName(It.IsAny <IEnumerable <Project> >())).Returns("fallback"); // mod1: proj11, testproj11 // mod2: proj21, proj22 // mod3: proj31 // mod4: proj41 // mod5: proj51 // mod6: proj61 // mod7: proj71 // prod1: mod1, mod2 // prod2: mod2, mod3 mod1 = suite.GetModule("mod1"); mod2 = suite.GetModule("mod2"); mod3 = suite.GetModule("mod3"); mod4 = suite.GetModule("mod4"); mod5 = suite.GetModule("mod5"); mod6 = suite.GetModule("mod6"); mod7 = suite.GetModule("mod7"); mod8 = suite.GetModule("mod8"); proj11 = mod1.GetProject("proj1"); tproj11 = mod1.GetTestProject("test1"); proj21 = mod2.GetProject("proj21"); proj22 = mod2.GetProject("proj22"); proj31 = mod3.GetProject("proj3"); proj41 = mod4.GetProject("proj4"); proj51 = mod5.GetProject("proj5"); proj61 = mod6.GetProject("proj6"); proj71 = mod7.GetProject("proj7"); proj81 = mod8.GetProject("proj8"); tproj81 = mod8.GetTestProject("test8"); prod1 = suite.GetProduct("prod1"); prod1.AddModule(mod1); prod1.AddModule(mod2); prod2 = suite.GetProduct("prod2"); prod2.AddModule(mod2); prod2.AddModule(mod3); }
public void SetUp() { fallback = new Mock<ISlnNameGenerator>(); suite = new Suite(new TestFileSystemDirectory("root")); suiteContents = new DefaultSuiteContentsAnalyzer(suite); generator = new ReadableSlnNameGenerator(fallback.Object, suiteContents); fallback.Setup(f => f.GetName(It.IsAny<IEnumerable<Project>>())).Returns("fallback"); // mod1: proj11, testproj11 // mod2: proj21, proj22 // mod3: proj31 // mod4: proj41 // mod5: proj51 // mod6: proj61 // mod7: proj71 // prod1: mod1, mod2 // prod2: mod2, mod3 mod1 = suite.GetModule("mod1"); mod2 = suite.GetModule("mod2"); mod3 = suite.GetModule("mod3"); mod4 = suite.GetModule("mod4"); mod5 = suite.GetModule("mod5"); mod6 = suite.GetModule("mod6"); mod7 = suite.GetModule("mod7"); mod8 = suite.GetModule("mod8"); proj11 = mod1.GetProject("proj1"); tproj11 = mod1.GetTestProject("test1"); proj21 = mod2.GetProject("proj21"); proj22 = mod2.GetProject("proj22"); proj31 = mod3.GetProject("proj3"); proj41 = mod4.GetProject("proj4"); proj51 = mod5.GetProject("proj5"); proj61 = mod6.GetProject("proj6"); proj71 = mod7.GetProject("proj7"); proj81 = mod8.GetProject("proj8"); tproj81 = mod8.GetTestProject("test8"); prod1 = suite.GetProduct("prod1"); prod1.AddModule(mod1); prod1.AddModule(mod2); prod2 = suite.GetProduct("prod2"); prod2.AddModule(mod2); prod2.AddModule(mod3); }
public CommandTarget ParseTarget(string target) { if (string.IsNullOrEmpty(target)) { return(new FullSuiteTarget(suite)); } else { if (suite.HasProduct(target)) { var product = suite.GetProduct(target); return(new ProductTarget(product)); } if (suite.HasModule(target)) { var module = suite.GetModule(target); return(new ModuleTarget(module)); } else { var matches = new HashSet <Project>(); // Looking for modulename.projectname matches foreach (var module in suite.Modules) { if (target.StartsWith(module.Name + '.', StringComparison.InvariantCultureIgnoreCase)) { string projectName = target.Substring(module.Name.Length + 1); if (module.HasProject(projectName)) { matches.Add(module.GetProject(projectName)); } } } // If there is only one match if (matches.Count == 1) { var project = matches.First(); return(new ProjectTarget(project)); } else { if (matches.Count > 1) { throw new ArgumentException( "The given module and project name identifies more than one projects", "target"); } else { throw new ArgumentException("The given project does not exist", "target"); } } } } }
public void Issue90_SingleProjectProduct() { var s = new Suite(new TestFileSystemDirectory("z")); var m = s.GetModule("m"); var p = m.GetProject("p"); var prod = s.GetProduct("prod"); prod.AddModule(m); var sc = new DefaultSuiteContentsAnalyzer(s); var g = new ReadableSlnNameGenerator(fallback.Object, sc); var name = g.GetName(new[] { p }); name.Should().Be("prod"); }
public void SetUp() { suite = new Suite(new TestFileSystemDirectory("root")); suiteNoExe = new Suite(new TestFileSystemDirectory("root")); suite.GetModule("TestModule").GetProject("TestLib").Type = ProjectType.Library; suiteNoExe.GetModule("TestModule").GetProject("TestLib").Type = ProjectType.Library; suite.GetModule("TestModule").GetProject("TestExe").Type = ProjectType.Executable; product = suite.GetProduct("TestProduct"); product.AddModule(suite.GetModule("TestModule")); targetParser = new Mock<ICommandTargetParser>(); buildTargetSource = new Mock<IHasBuildTarget>(); data = new AddonSupportSolutionItemData(targetParser.Object, buildTargetSource.Object, new Goal("test")); }
public void SetUp() { suite = new Suite(new TestFileSystemDirectory("root")); suiteNoExe = new Suite(new TestFileSystemDirectory("root")); suite.GetModule("TestModule").GetProject("TestLib").Type = ProjectType.Library; suiteNoExe.GetModule("TestModule").GetProject("TestLib").Type = ProjectType.Library; suite.GetModule("TestModule").GetProject("TestExe").Type = ProjectType.Executable; product = suite.GetProduct("TestProduct"); product.AddModule(suite.GetModule("TestModule")); targetParser = new Mock <ICommandTargetParser>(); buildTargetSource = new Mock <IHasBuildTarget>(); data = new AddonSupportSolutionItemData(targetParser.Object, buildTargetSource.Object, new Goal("test")); }
private void PackProduct(Suite suite, string productName) { if (suite.HasProduct(productName)) { var product = suite.GetProduct(productName); if (product.Packager != null) { var packager = productPackagerFactory.CreateProductPackager(product.Packager.PackagerType); packager.Pack(product, GetProductOutputs(product)); } else { throw new InvalidCommandParameterException("pack", "The product has no packager definition!"); } } else { throw new InvalidCommandParameterException("pack", String.Format("Product {0} is not defined!", productName)); } }
private void PublishProduct(Suite suite, string productName) { if (suite.HasProduct(productName)) { var product = suite.GetProduct(productName); if (product.Packager != null) { var packager = productPackagerFactory.CreateProductPackager(product.Packager.PackagerType); packager.Publish(product); } else { throw new InvalidCommandParameterException("publish", "The product has no packager definition!"); } } else { throw new InvalidCommandParameterException("publish", String.Format("Product {0} is not defined!", productName)); } }
private IBuilder RunPostProcessors(IBuildContext context, Project[] prjs, IBuilder input) { var modules = prjs.Select(p => p.Module).Distinct().ToList(); var postProcessableItems = prjs.Concat(modules.Cast <IPostProcessorsHolder>()).ToList(); var productName = analyzer.GetProductName(modules); if (productName != null) { postProcessableItems.Add(suite.GetProduct(productName)); } var factories = postProcessorFactories.ToList(); var resultBuilders = new List <IPostProcessor>(); foreach (var ppHolder in postProcessableItems) { foreach (var pp in ppHolder.PostProcessors) { var postProcessor = factories.Select(f => f.CreatePostProcessorFor(ppHolder, pp, new [] { input })).FirstOrDefault(p => p != null); if (postProcessor != null) { postProcessor.AddToContext(context); resultBuilders.Add(postProcessor); } } } if (resultBuilders.Count == 0) { return(input); } else { var merger = new MergingBuilder(resultBuilders.Concat(new[] { input })); merger.AddToContext(context); return(merger); } }