예제 #1
0
        public async Task TestSaveWorkspace()
        {
            // Saving a workspace must save all solutions and projects it contains

            string    dir = Util.CreateTmpDir("TestSaveWorkspace");
            Workspace ws  = new Workspace();

            ws.FileName = Path.Combine(dir, "workspace");

            Solution sol = new Solution();

            sol.FileName = Path.Combine(dir, "thesolution");
            ws.Items.Add(sol);

            DotNetProject p = Services.ProjectService.CreateDotNetProject("C#");

            p.FileName = Path.Combine(dir, "theproject");
            sol.RootFolder.Items.Add(p);

            await ws.SaveAsync(Util.GetMonitor());

            Assert.IsTrue(File.Exists(ws.FileName));
            Assert.IsTrue(File.Exists(sol.FileName));
            Assert.IsTrue(File.Exists(p.FileName));

            ws.Dispose();
        }
예제 #2
0
		public async Task TestSaveWorkspace ()
		{
			// Saving a workspace must save all solutions and projects it contains
			
			string dir = Util.CreateTmpDir ("TestSaveWorkspace");
			Workspace ws = new Workspace ();
			ws.FileName = Path.Combine (dir, "workspace");
			
			Solution sol = new Solution ();
			sol.FileName = Path.Combine (dir, "thesolution");
			ws.Items.Add (sol);
			
			DotNetProject p = Services.ProjectService.CreateDotNetProject ("C#");
			p.FileName = Path.Combine (dir, "theproject");
			sol.RootFolder.Items.Add (p);
			
			await ws.SaveAsync (Util.GetMonitor ());
			
			Assert.IsTrue (File.Exists (ws.FileName));
			Assert.IsTrue (File.Exists (sol.FileName));
			Assert.IsTrue (File.Exists (p.FileName));
		}
예제 #3
0
        public async Task BuildingAndCleaning()
        {
            string solFile = Util.GetSampleProject("console-with-libs", "console-with-libs.sln");

            Solution sol = (Solution)await Services.ProjectService.ReadWorkspaceItem(Util.GetMonitor(), solFile);

            DotNetProject p    = (DotNetProject)sol.FindProjectByName("console-with-libs");
            DotNetProject lib1 = (DotNetProject)sol.FindProjectByName("library1");
            DotNetProject lib2 = (DotNetProject)sol.FindProjectByName("library2");

            SolutionFolder folder = new SolutionFolder();

            folder.Name = "subfolder";
            sol.RootFolder.Items.Add(folder);
            sol.RootFolder.Items.Remove(lib2);
            folder.Items.Add(lib2);

            Workspace ws = new Workspace();

            ws.FileName = Path.Combine(sol.BaseDirectory, "workspace");
            ws.Items.Add(sol);
            await ws.SaveAsync(Util.GetMonitor());

            // Build the project and the references

            BuildResult res = await ws.Build(Util.GetMonitor(), ConfigurationSelector.Default);

            Assert.AreEqual(0, res.ErrorCount);
            Assert.AreEqual(0, res.WarningCount);
            Assert.AreEqual(3, res.BuildCount);

            Assert.IsTrue(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", "console-with-libs.exe")));
            Assert.IsTrue(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", GetMdb(p, "console-with-libs.exe"))));
            Assert.IsTrue(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", "library1.dll")));
            Assert.IsTrue(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", GetMdb(lib1, "library1.dll"))));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));

            // Clean the workspace

            await ws.Clean(Util.GetMonitor(), ConfigurationSelector.Default);

            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", "console-with-libs.exe")));
            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", GetMdb(p, "console-with-libs.exe"))));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", "library1.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", GetMdb(lib1, "library1.dll"))));
            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));

            // Build the solution

            res = await ws.Build(Util.GetMonitor(), ConfigurationSelector.Default);

            Assert.AreEqual(0, res.ErrorCount);
            Assert.AreEqual(0, res.WarningCount);
            Assert.AreEqual(3, res.BuildCount);

            Assert.IsTrue(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", "console-with-libs.exe")));
            Assert.IsTrue(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", GetMdb(p, "console-with-libs.exe"))));
            Assert.IsTrue(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", "library1.dll")));
            Assert.IsTrue(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", GetMdb(lib1, "library1.dll"))));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));

            // Clean the solution

            await sol.Clean(Util.GetMonitor(), "Debug");

            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", "console-with-libs.exe")));
            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", GetMdb(p, "console-with-libs.exe"))));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", "library1.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", GetMdb(lib1, "library1.dll"))));
            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));

            // Build the solution folder

            res = await folder.Build(Util.GetMonitor(), (SolutionConfigurationSelector)"Debug");

            Assert.AreEqual(0, res.ErrorCount);
            Assert.AreEqual(0, res.WarningCount);
            Assert.AreEqual(1, res.BuildCount);

            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", "console-with-libs.exe")));
            Assert.IsFalse(File.Exists(Util.Combine(p.BaseDirectory, "bin", "Debug", GetMdb(p, "console-with-libs.exe"))));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", "library1.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib1.BaseDirectory, "bin", "Debug", GetMdb(lib1, "library1.dll"))));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsTrue(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));

            // Clean the solution folder

            await folder.Clean(Util.GetMonitor(), (SolutionConfigurationSelector)"Debug");

            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", "library2.dll")));
            Assert.IsFalse(File.Exists(Util.Combine(lib2.BaseDirectory, "bin", "Debug", GetMdb(lib2, "library2.dll"))));
            sol.Dispose();
        }