コード例 #1
0
ファイル: ConstraintsTest.cs プロジェクト: limiha/FieldWorks
        public void CollectingConstraint()
        {
            CollectingConstraint c = new CollectingConstraint();

            Assertion.Assert(c.Eval("test"));
            Assertion.AssertEquals("test", c.Parameter);

            Assertion.Assert("eval should always be true", c.Eval(null));
            Assertion.AssertNull(c.Parameter);
        }
コード例 #2
0
		public void SendScheduleToCruiseManager()
		{
			CollectingConstraint projectNameConstraint = new CollectingConstraint();
			CollectingConstraint scheduleConstraint = new CollectingConstraint();
			RemotingMock cc = new RemotingMock(typeof(ICruiseManager));
			cc.Expect("Run", projectNameConstraint, scheduleConstraint);

			using (MockServer server = new MockServer(cc.MarshalByRefInstance, new TcpChannel(2334), "MockCruise.rem"))
			{
				Runner runner = new Runner();
				runner.Url = "tcp://localhost:2334/MockCruise.rem";
				runner.Run("myProject");
			}

			AssertEquals("myProject", projectNameConstraint.Parameter);
			AssertEquals(new Schedule(), scheduleConstraint.Parameter);
			cc.Verify();
		}
コード例 #3
0
ファイル: ConstraintsTest.cs プロジェクト: bbriggs/FieldWorks
		public void CollectingConstraint()
		{
			CollectingConstraint c = new CollectingConstraint();
			Assertion.Assert(c.Eval("test"));
			Assertion.AssertEquals("test", c.Parameter);

			Assertion.Assert("eval should always be true", c.Eval(null));
			Assertion.AssertNull(c.Parameter);

		}
コード例 #4
0
		private void CheckBaseDirectory(IIntegrationResult integrationResult, string expectedBaseDirectory)
		{
			ProcessResult returnVal = SuccessfulProcessResult();
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", returnVal, new object[] { constraint });
			builder.Run(integrationResult);
			ProcessInfo info = (ProcessInfo)constraint.Parameter;
			Assert.AreEqual(expectedBaseDirectory, info.WorkingDirectory);
		}
コード例 #5
0
		public void ShouldPassSuccessExitCodesToProcessExecutor()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", SuccessfulProcessResult(), new object[] { constraint });

			IntegrationResult result = (IntegrationResult)IntegrationResult();
			result.Label = "1.0";
			result.BuildCondition = BuildCondition.ForceBuild;
			result.WorkingDirectory = @"c:\workingdir\";
			result.ArtifactDirectory = @"c:\artifactdir\";

			task.SuccessExitCodes = "0,1,3,5";
			task.Run(result);

			ProcessInfo info = (ProcessInfo)constraint.Parameter;

			Assert.IsTrue(info.ProcessSuccessful(0));
			Assert.IsTrue(info.ProcessSuccessful(1));
			Assert.IsFalse(info.ProcessSuccessful(2));
			Assert.IsTrue(info.ProcessSuccessful(3));
			Assert.IsFalse(info.ProcessSuccessful(4));
			Assert.IsTrue(info.ProcessSuccessful(5));
			Assert.IsFalse(info.ProcessSuccessful(6));

			Verify();
		}
コード例 #6
0
		public void ShouldPassSpecifiedPropertiesAsProcessInfoArgumentsToProcessExecutor()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", SuccessfulProcessResult(), new object[] {constraint });

			IntegrationResult result = (IntegrationResult) IntegrationResult();
			result.Label = "1.0";
			result.BuildCondition = BuildCondition.ForceBuild;
			result.WorkingDirectory = @"c:\workingdir\";
			result.ArtifactDirectory = @"c:\artifactdir\";

			task.Executable = "test-exe";
			task.BuildArgs = "test-args";
			task.BuildTimeoutSeconds = 222;
			task.Run(result);

			ProcessInfo info = (ProcessInfo) constraint.Parameter;
			Assert.AreEqual("test-exe", info.FileName);
			Assert.AreEqual(222000, info.TimeOut);
			Assert.AreEqual("test-args", info.Arguments);
			Assert.AreEqual("1.0", info.EnvironmentVariables["CCNetLabel"]);
			Assert.AreEqual("ForceBuild", info.EnvironmentVariables["CCNetBuildCondition"]);
			Assert.AreEqual(@"c:\workingdir\", info.EnvironmentVariables["CCNetWorkingDirectory"]);
			Assert.AreEqual(@"c:\artifactdir\", info.EnvironmentVariables["CCNetArtifactDirectory"]);
			Verify();
		}
コード例 #7
0
        public void ShouldSetOutputAndIntegrationStatusToFailedOnFailedBuild()
        {
            ProcessResult processResult = new ProcessResult(@"Documents\WindowsPowerShell\MyScript.ps1' is not recognized as a cmdlet", string.Empty, 1, false);
            CollectingConstraint constraint = new CollectingConstraint();
            mockProcessExecutor.ExpectAndReturn("Execute", processResult, new object[] { constraint });

            mytask.Executable = POWERSHELL_PATH;
            mytask.Script = "MyScript.ps1";
            mytask.ConfiguredScriptsDirectory = @"D:\CruiseControl";

            IIntegrationResult result = Integration("myProject", @"D:\CruiseControl", "myArtifactDirectory");
            mytask.Run(result);

            ProcessInfo info = (ProcessInfo)constraint.Parameter;
            Assert.AreEqual(@"D:\CruiseControl", info.WorkingDirectory);

            Assert.AreEqual(IntegrationStatus.Failure, result.Status);
            CustomAssertion.AssertMatches(@"(\.|\n)*is not recognized as a cmdlet", result.TaskOutput);
        }
コード例 #8
0
        public void VerifyPowerShellProcessInfoBasic()
        {
            CollectingConstraint constraint = new CollectingConstraint();
            ProcessResult processResult = new ProcessResult("output", "error", 0, false);
            mockProcessExecutor.ExpectAndReturn("Execute", processResult, new object[] { constraint });
            mytask.Executable = POWERSHELL_PATH;
            mytask.Script = "MyScipt.ps1";
           
            mytask.Run(IntegrationResult());

            ProcessInfo info = (ProcessInfo)constraint.Parameter;
            Assert.AreEqual(POWERSHELL_PATH, info.FileName);
            Assert.AreEqual(PowerShellTask.DefaultBuildTimeOut * 1000, info.TimeOut);
            CustomAssertion.AssertContains(mytask.Script, info.Arguments);
        }
コード例 #9
0
        public void VerifyPowerShellProcessInfoWithScriptsDirectoryConfigured()
        {
            CollectingConstraint constraint = new CollectingConstraint();
            ProcessResult processResult = new ProcessResult("output", "error", 0, false);
            mockProcessExecutor.ExpectAndReturn("Execute", processResult, new object[] { constraint });
            mytask.Executable = POWERSHELL_PATH;
            mytask.Script = "MyScript.ps1";
            mytask.ConfiguredScriptsDirectory = @"D:\CruiseControl";

            mytask.Run(IntegrationResult());

            ProcessInfo info = (ProcessInfo)constraint.Parameter;
            Assert.AreEqual(POWERSHELL_PATH, info.FileName);
            Assert.AreEqual(PowerShellTask.DefaultBuildTimeOut * 1000, info.TimeOut);
            CustomAssertion.AssertStartsWith(@"-nologo -NoProfile -NonInteractive -file ""D:\CruiseControl\MyScript.ps1""", info.Arguments);
        }
コード例 #10
0
		public void SilentAndQuietOptionShouldOnlyAddSilentArgument()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", SuccessfulProcessResult(), new object[] { constraint });
			builder.Silent = true;
			builder.Quiet = true;
			builder.Run(result);
			ProcessInfo info = (ProcessInfo)constraint.Parameter;
			Assert.AreEqual("--silent", info.Arguments);
		}
コード例 #11
0
		public void ShouldRunWithMultipleTargetsSpecified()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", SuccessfulProcessResult(), new object[] { constraint });
			
			builder.Targets = new string[] { "targeta", "targetb", "targetc" };
			builder.Run(result);
			
			ProcessInfo info = (ProcessInfo)constraint.Parameter;
			Assert.AreEqual("targeta targetb targetc", info.Arguments);
		}
コード例 #12
0
		public void ShouldPassSpecifiedPropertiesAsProcessInfoArgumentsToProcessExecutor()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", SuccessfulProcessResult(), new object[] { constraint });

			IntegrationResult integrationResult = (IntegrationResult)IntegrationResult();
			integrationResult.ProjectName = "test";
			integrationResult.Label = "1.0";
			integrationResult.BuildCondition = BuildCondition.ForceBuild;
			integrationResult.WorkingDirectory = DefaultWorkingDirectory;
			integrationResult.ArtifactDirectory = DefaultWorkingDirectory;

			builder.Executable = "rake";
			builder.BuildArgs = "myargs";
			builder.BuildTimeoutSeconds = 222;
			builder.Run(integrationResult);

			ProcessInfo info = (ProcessInfo)constraint.Parameter;
			Assert.AreEqual("rake", info.FileName);
			Assert.AreEqual(222000, info.TimeOut);
			Assert.AreEqual("myargs", info.Arguments);
			Assert.AreEqual("1.0", info.EnvironmentVariables["CCNetLabel"]);
			Assert.AreEqual("ForceBuild", info.EnvironmentVariables["CCNetBuildCondition"]);
			Assert.AreEqual(DefaultWorkingDirectory, info.EnvironmentVariables["CCNetWorkingDirectory"]);
			Assert.AreEqual(DefaultWorkingDirectory, info.EnvironmentVariables["CCNetArtifactDirectory"]);
		}
コード例 #13
0
		public void ShouldSetOutputAndIntegrationStatusToFailedOnFailedBuild()
		{
			ProcessResult processResult = new ProcessResult(@"D:\dev\ccnet\ccnet\project\nosolution.sln could not be found and will not be loaded", string.Empty, 1, false);
			CollectingConstraint constraint = new CollectingConstraint();
			mockProcessExecutor.ExpectAndReturn("Execute", processResult, new object[] {constraint});

			task.Executable = DEVENV_PATH;
			task.SolutionFile = @"D:\dev\ccnet\ccnet\project\nosolution.sln";
			task.Configuration = CONFIGURATION;

			IIntegrationResult result = Integration("myProject", "myWorkingDirectory", "myArtifactDirectory");
			task.Run(result);

			ProcessInfo info = (ProcessInfo) constraint.Parameter;
			Assert.AreEqual("myWorkingDirectory", info.WorkingDirectory);

			Assert.AreEqual(IntegrationStatus.Failure, result.Status);
			AssertMatches(@"(\.|\n)*could not be found and will not be loaded", result.TaskOutput);
		}
コード例 #14
0
		public void VerifyDevenvProcessInfoWithProjectDefined()
		{
			CollectingConstraint constraint = new CollectingConstraint();
			ProcessResult processResult = new ProcessResult("output", "error", 0, false);
			mockProcessExecutor.ExpectAndReturn("Execute", processResult, new object[] {constraint});
			task.Executable = DEVENV_PATH;
			task.SolutionFile = "mySolution.sln";
			task.Configuration = "\"Debug\"";
			task.Project = "myProject";

			task.Run(IntegrationResult());

			ProcessInfo info = (ProcessInfo) constraint.Parameter;
			Assert.AreEqual(DEVENV_PATH, info.FileName);
			Assert.AreEqual(DevenvTask.DEFAULT_BUILD_TIMEOUT*1000, info.TimeOut);
            AssertStartsWith("\"mySolution.sln\" /rebuild \"Debug\" /project \"myProject\"", info.Arguments);
		}