Ejemplo n.º 1
0
        public async Task CreateMultiPlatformProjectFromTemplateWithPCLOnly()
        {
            string templateId = "MonoDevelop.Packaging.CrossPlatformLibrary";
            var    template   = ProjectTemplate.ProjectTemplates.FirstOrDefault(t => t.Id == templateId);
            var    dir        = Util.CreateTmpDir(template.Id);
            var    cinfo      = new ProjectCreateInformation {
                ProjectBasePath = dir,
                ProjectName     = "ProjectName",
                SolutionName    = "SolutionName",
                SolutionPath    = dir
            };

            cinfo.Parameters["ProjectName"]           = cinfo.ProjectName;
            cinfo.Parameters["CreatePortableProject"] = bool.TrueString;
            cinfo.Parameters["PackageAuthors"]        = "authors";
            cinfo.Parameters["PackageId"]             = "ProjectName";
            cinfo.Parameters["PackageDescription"]    = "Description";
            cinfo.Parameters["PackageVersion"]        = "1.0.0";

            var workspaceItem = template.CreateWorkspaceItem(cinfo);

            var wizard = new TestableCrossPlatformLibraryTemplateWizard();

            wizard.Parameters = cinfo.Parameters;
            wizard.ItemsCreated(new [] { workspaceItem });

            var project = ((Solution)workspaceItem).GetAllProjects().First();

            project.MSBuildProject.GetGlobalPropertyGroup().SetValue("PackOnBuild", "true");
            string solutionFileName = Path.Combine(dir, "SolutionName.sln");
            await workspaceItem.SaveAsync(solutionFileName, Util.GetMonitor());

            await NuGetPackageInstaller.InstallPackages((Solution)workspaceItem, template.PackageReferencesForCreatedProjects);

            var solution = (Solution)await Ide.Services.ProjectService.ReadWorkspaceItem(Util.GetMonitor(), solutionFileName);

            project = solution.GetAllProjects().First();
            BuildResult cr = await solution.Build(Util.GetMonitor(), "Debug");

            Assert.IsNotNull(cr);
            Assert.AreEqual(0, cr.ErrorCount);
            Assert.AreEqual(0, cr.WarningCount);

            string packageFileName = Path.Combine(dir, "bin", "Debug", "ProjectName.1.0.0.nupkg");
            bool   packageCreated  = File.Exists(packageFileName);

            Assert.IsTrue(packageCreated, "NuGet package not created.");
        }
		public async Task CreateMultiPlatformProjectFromTemplateWithPCLOnly ()
		{
			string templateId = "MonoDevelop.Packaging.CrossPlatformLibrary";
			var template = ProjectTemplate.ProjectTemplates.FirstOrDefault (t => t.Id == templateId);
			var dir = Util.CreateTmpDir (template.Id);
			var cinfo = new ProjectCreateInformation {
				ProjectBasePath = dir,
				ProjectName = "ProjectName",
				SolutionName = "SolutionName",
				SolutionPath = dir
			};
			cinfo.Parameters["ProjectName"] = cinfo.ProjectName;
			cinfo.Parameters["CreatePortableProject"] = bool.TrueString;
			cinfo.Parameters["PackageAuthors"] = "authors";
			cinfo.Parameters["PackageId"] = "ProjectName";
			cinfo.Parameters["PackageDescription"] = "Description";
			cinfo.Parameters["PackageVersion"] = "1.0.0";

			var workspaceItem = template.CreateWorkspaceItem (cinfo);

			var wizard = new TestableCrossPlatformLibraryTemplateWizard ();
			wizard.Parameters = cinfo.Parameters;
			wizard.ItemsCreated (new [] { workspaceItem });

			var project = ((Solution)workspaceItem).GetAllProjects ().First ();
			project.MSBuildProject.GetGlobalPropertyGroup ().SetValue ("PackOnBuild", "true");
			string solutionFileName = Path.Combine (dir, "SolutionName.sln");
			await workspaceItem.SaveAsync (solutionFileName, Util.GetMonitor ());

			await NuGetPackageInstaller.InstallPackages ((Solution)workspaceItem, template.PackageReferencesForCreatedProjects);

			var solution = (Solution)await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solutionFileName);
			project = solution.GetAllProjects ().First ();
			BuildResult cr = await solution.Build (Util.GetMonitor (), "Debug");
			Assert.IsNotNull (cr);
			Assert.AreEqual (0, cr.ErrorCount);
			Assert.AreEqual (0, cr.WarningCount);

			string packageFileName = Path.Combine (dir, "bin", "Debug", "ProjectName.1.0.0.nupkg");
			bool packageCreated = File.Exists (packageFileName);
			Assert.IsTrue (packageCreated, "NuGet package not created.");
		}