public void WorkingDirectorySet()
		{
			PartCoverRunner runner = new PartCoverRunner();
			string folder = @"C:\Program Files\PartCover";
			runner.WorkingDirectory = folder;
			Assert.AreEqual(folder, runner.WorkingDirectory);
		}
		public void PartCoverFileNameSpecified()
		{
			string partCoverFileName = @"C:\Program Files\PartCover\PartCover.exe";
			PartCoverRunner runner = new PartCoverRunner();
			runner.PartCoverFileName = partCoverFileName;
			
			Assert.AreEqual(partCoverFileName, runner.CommandLine);
		}
        public void WorkingDirectorySet()
        {
            PartCoverRunner runner = new PartCoverRunner();
            string          folder = @"C:\Program Files\PartCover";

            runner.WorkingDirectory = folder;
            Assert.AreEqual(folder, runner.WorkingDirectory);
        }
		public void TargetWorkingDirectorySpecified()
		{
			string targetWorkingDirectory = @"C:\Program Files\SharpDevelop\bin\Tools";
			PartCoverRunner runner = new PartCoverRunner();
			runner.TargetWorkingDirectory = targetWorkingDirectory;
			string expectedArgs = "--target-work-dir \"" + targetWorkingDirectory + "\"";
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}
        public void PartCoverFileNameSpecified()
        {
            string          partCoverFileName = @"C:\Program Files\PartCover\PartCover.exe";
            PartCoverRunner runner            = new PartCoverRunner();

            runner.PartCoverFileName = partCoverFileName;

            Assert.AreEqual(partCoverFileName, runner.CommandLine);
        }
		public void TargetArguments()
		{
			string targetArgs = @"C:\Project\Test\MyTests.dll";
			PartCoverRunner runner = new PartCoverRunner();
			runner.TargetWorkingDirectory = null;
			runner.TargetArguments = targetArgs;
			string expectedArgs = "--target-args \"" + targetArgs + "\"";
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}		
        public void ExcludeSpecified()
        {
            string          exclude = @"[RootNamespace.MyTests]*";
            PartCoverRunner runner  = new PartCoverRunner();

            runner.Exclude.Add(exclude);
            string expectedArgs = "--exclude " + exclude;

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
        public void OutputSpecified()
        {
            string          output = @"C:\Projects\MyTests\CodeCoverage.xml";
            PartCoverRunner runner = new PartCoverRunner();

            runner.Output = output;
            string expectedArgs = "--output \"" + output + "\"";

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
        public void TargetWorkingDirectorySpecified()
        {
            string          targetWorkingDirectory = @"C:\Program Files\SharpDevelop\bin\Tools";
            PartCoverRunner runner = new PartCoverRunner();

            runner.TargetWorkingDirectory = targetWorkingDirectory;
            string expectedArgs = "--target-work-dir \"" + targetWorkingDirectory + "\"";

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
		public void TargetFileNameSpecified()
		{
			string targetFileName = @"C:\Program Files\SharpDevelop\bin\Tools\NUnit-console.exe";
			string partCoverFileName = @"C:\Program Files\PartCover\PartCover.exe";
			PartCoverRunner runner = new PartCoverRunner();
			runner.PartCoverFileName = partCoverFileName;
			runner.Target = targetFileName;
			string expectedCommandLine = partCoverFileName + " --target \"" + targetFileName + "\"";
			
			Assert.AreEqual(expectedCommandLine, runner.CommandLine);
		}		
        public void TargetArguments()
        {
            string          targetArgs = @"C:\Project\Test\MyTests.dll";
            PartCoverRunner runner     = new PartCoverRunner();

            runner.TargetWorkingDirectory = null;
            runner.TargetArguments        = targetArgs;
            string expectedArgs = "--target-args \"" + targetArgs + "\"";

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
        public void TargetArgumentsIncludeDoubleQuotes()
        {
            string          targetArgs = "\"C:\\Project\\My Tests\\MyTests.dll\" /output=\"C:\\Project\\My Tests\\Output.xml\"";
            PartCoverRunner runner     = new PartCoverRunner();

            runner.TargetWorkingDirectory = null;
            runner.TargetArguments        = targetArgs;
            string expectedArgs = "--target-args \"" + targetArgs.Replace("\"", "\\\"") + "\"";

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
        public void TargetFileNameSpecified()
        {
            string          targetFileName    = @"C:\Program Files\SharpDevelop\bin\Tools\NUnit-console.exe";
            string          partCoverFileName = @"C:\Program Files\PartCover\PartCover.exe";
            PartCoverRunner runner            = new PartCoverRunner();

            runner.PartCoverFileName = partCoverFileName;
            runner.Target            = targetFileName;
            string expectedCommandLine = partCoverFileName + " --target \"" + targetFileName + "\"";

            Assert.AreEqual(expectedCommandLine, runner.CommandLine);
        }
        public void OneIncludeAndExcludeItemSpecified()
        {
            string          exclude = @"[RootNamespace.MyTests]*";
            string          include = @"[System]*";
            PartCoverRunner runner  = new PartCoverRunner();

            runner.Exclude.Add(exclude);
            runner.Include.Add(include);
            string expectedArgs = "--include " + include + " --exclude " + exclude;

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
        public void TwoExcludeItemsSpecified()
        {
            string          exclude1 = @"[RootNamespace.MyTests]*";
            string          exclude2 = @"[System]*";
            PartCoverRunner runner   = new PartCoverRunner();

            runner.Exclude.Add(exclude1);
            runner.Exclude.Add(exclude2);
            string expectedArgs = "--exclude " + exclude1 + " --exclude " + exclude2;

            Assert.AreEqual(expectedArgs, runner.GetArguments());
        }
		public void TargetArgumentsIncludeDoubleQuotes()
		{
			string targetArgs = "\"C:\\Project\\My Tests\\MyTests.dll\" /output=\"C:\\Project\\My Tests\\Output.xml\"";
			PartCoverRunner runner = new PartCoverRunner();
			runner.TargetWorkingDirectory = null;
			runner.TargetArguments = targetArgs;
			string expectedArgs = "--target-args \"" + targetArgs.Replace("\"", "\\\"") + "\"";
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}		
		public void OneIncludeAndExcludeItemSpecified()
		{
			string exclude = @"[RootNamespace.MyTests]*";
			string include = @"[System]*";
			PartCoverRunner runner = new PartCoverRunner();
			runner.Exclude.Add(exclude);
			runner.Include.Add(include);
			string expectedArgs = "--include " + include + " --exclude " + exclude;
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}		
        public void WorkingDirectoryNotSet()
        {
            PartCoverRunner runner = new PartCoverRunner();

            Assert.AreEqual(String.Empty, runner.WorkingDirectory);
        }
        public void ArgumentsStringIsEmptyWhenNothingSpecified()
        {
            PartCoverRunner runner = new PartCoverRunner();

            Assert.AreEqual(String.Empty, runner.GetArguments());
        }
		public void OutputSpecified()
		{
			string output = @"C:\Projects\MyTests\CodeCoverage.xml";
			PartCoverRunner runner = new PartCoverRunner();
			runner.Output = output;
			string expectedArgs = "--output \"" + output + "\"";
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}		
		public void ArgumentsStringIsEmptyWhenNothingSpecified()
		{
			PartCoverRunner runner = new PartCoverRunner();
			Assert.AreEqual(String.Empty, runner.GetArguments());
		}
		public void WorkingDirectoryNotSet()
		{
			PartCoverRunner runner = new PartCoverRunner();
			Assert.AreEqual(String.Empty, runner.WorkingDirectory);
		}
		public void TwoExcludeItemsSpecified()
		{
			string exclude1 = @"[RootNamespace.MyTests]*";
			string exclude2 = @"[System]*";
			PartCoverRunner runner = new PartCoverRunner();
			runner.Exclude.Add(exclude1);
			runner.Exclude.Add(exclude2);
			string expectedArgs = "--exclude " + exclude1 + " --exclude " + exclude2;
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}		
		public RunTestWithCodeCoverageCommand()
		{
			runner = new PartCoverRunner();
			runner.Exited += PartCoverExited;
			runner.OutputLineReceived += OutputLineReceived;
		}
		public void ExcludeSpecified()
		{
			string exclude = @"[RootNamespace.MyTests]*";
			PartCoverRunner runner = new PartCoverRunner();
			runner.Exclude.Add(exclude);
			string expectedArgs = "--exclude " + exclude;
			
			Assert.AreEqual(expectedArgs, runner.GetArguments());
		}