Ejemplo n.º 1
0
 public virtual void ShouldNotGetSourceIfAutoGetSourceIsFalse()
 {
     vault.AutoGetSource = false;
     vault.GetSource(IntegrationResultMother.CreateSuccessful());
     mockProcessExecutor.VerifyNoOtherCalls();
     VerifyAll();
 }
        public void ShouldSendFixedMailToFailureUsersWithModificationNotificationSetToFailedAndFixed()
        {
            mockGateway.Expect("Send", new MailMessageRecipientValidator(2));

            publisher              = new EmailPublisher();
            publisher.FromAddress  = "*****@*****.**";
            publisher.EmailGateway = (EmailGateway)mockGateway.MockInstance;
            publisher.ModifierNotificationTypes    = new EmailGroup.NotificationType[2];
            publisher.ModifierNotificationTypes[0] = EmailGroup.NotificationType.Failed;
            publisher.ModifierNotificationTypes[1] = EmailGroup.NotificationType.Fixed;

            publisher.IndexedEmailUsers.Add("user1", new EmailUser("user1", null, "*****@*****.**"));
            publisher.IndexedEmailUsers.Add("user2", new EmailUser("user2", null, "*****@*****.**"));

            IntegrationResult result;
            Modification      modification;

            result = IntegrationResultMother.CreateFixed();
            result.FailureUsers.Add("user1");

            modification              = new Modification();
            modification.UserName     = "******";
            modification.ModifiedTime = new DateTime(1973, 12, 24, 2, 30, 00);
            result.Modifications      = new Modification[] { modification };

            publisher.Run(result);
            mockGateway.Verify();
        }
Ejemplo n.º 3
0
        public void ShouldSendFixedMailToFailureUsersWithModificationNotificationSetToFailedAndFixed()
        {
            mockGateway.Setup(gateway => gateway.Send(It.IsAny <MailMessage>())).
            Callback <MailMessage>(message => {
                Assert.AreEqual(2, message.To.Count);
            }).Verifiable();

            publisher              = new EmailPublisher();
            publisher.FromAddress  = "*****@*****.**";
            publisher.EmailGateway = (EmailGateway)mockGateway.Object;
            publisher.ModifierNotificationTypes    = new EmailGroup.NotificationType[2];
            publisher.ModifierNotificationTypes[0] = EmailGroup.NotificationType.Failed;
            publisher.ModifierNotificationTypes[1] = EmailGroup.NotificationType.Fixed;

            publisher.IndexedEmailUsers.Add("user1", new EmailUser("user1", null, "*****@*****.**"));
            publisher.IndexedEmailUsers.Add("user2", new EmailUser("user2", null, "*****@*****.**"));

            IntegrationResult result;
            Modification      modification;

            result = IntegrationResultMother.CreateFixed();
            result.FailureUsers.Add("user1");

            modification              = new Modification();
            modification.UserName     = "******";
            modification.ModifiedTime = new DateTime(1973, 12, 24, 2, 30, 00);
            result.Modifications      = new Modification[] { modification };

            publisher.Run(result);
            mockGateway.Verify();
        }
Ejemplo n.º 4
0
 public void TemporaryLabelNotAppliedByDefault()
 {
     ExpectThatExecuteWillNotBeCalled();
     vss.ApplyLabel    = false;
     vss.AutoGetSource = false;
     vss.GetSource(IntegrationResultMother.CreateSuccessful());
 }
Ejemplo n.º 5
0
 public virtual void ShouldNotGetSourceIfAutoGetSourceIsFalse()
 {
     ExpectThatExecuteWillNotBeCalled();
     vault.AutoGetSource = false;
     vault.GetSource(IntegrationResultMother.CreateSuccessful());
     VerifyAll();
 }
        public void PassesIndividualSourceDataAndCombinesSingleSourceControl()
        {
            IntegrationResult from = IntegrationResultMother.CreateSuccessful(DateTime.Now);
            IntegrationResult to   = IntegrationResultMother.CreateSuccessful(DateTime.Now.AddDays(10));

            string scValue            = null;
            List <NameValuePair> list = new List <NameValuePair>();

            list.Add(new NameValuePair("name0", "first"));
            scValue = XmlConversionUtil.ConvertObjectToXml(list);
            from.SourceControlData.Add(new NameValuePair("sc0", scValue));
            list.Clear();

            List <ISourceControl> sourceControls = new List <ISourceControl>();

            sourceControls.Add(new MockSourceControl());

            MultiSourceControl multiSourceControl = new MultiSourceControl();

            multiSourceControl.SourceControls = sourceControls.ToArray();

            //// EXECUTE
            ArrayList returnedMods = new ArrayList(multiSourceControl.GetModifications(from, to));

            //// VERIFY
            Assert.AreEqual(from.SourceControlData.Count, to.SourceControlData.Count, "SourceControlData.Count");

            list.Add(new NameValuePair("name0", "first"));
            Assert.AreEqual(XmlConversionUtil.ConvertObjectToXml(list), to.SourceControlData[0].Value, "SourceControlData[0].Value");
            list.Clear();
            Assert.AreEqual("sc0", to.SourceControlData[0].Name, "SourceControlData[0].Name");
        }
        public void MigratesSourceControlDataToNewFormatSameSourceControlCount()
        {
            IntegrationResult from = IntegrationResultMother.CreateSuccessful(DateTime.Now);
            IntegrationResult to   = IntegrationResultMother.CreateSuccessful(DateTime.Now.AddDays(10));

            ArrayList scList = new ArrayList();

            scList.Add(new MockSourceControl());
            scList.Add(new MockSourceControl());

            from.SourceControlData.Add(new NameValuePair("test", "first"));
            from.SourceControlData.Add(new NameValuePair("commit", "first"));

            MultiSourceControl multiSourceControl = new MultiSourceControl();

            multiSourceControl.SourceControls = (ISourceControl[])scList.ToArray(typeof(ISourceControl));

            //// EXECUTE
            ArrayList returnedMods = new ArrayList(multiSourceControl.GetModifications(from, to));

            //// VERIFY
            Assert.AreEqual(2, to.SourceControlData.Count, "SourceControlData.Count");

            List <NameValuePair> list = new List <NameValuePair>();

            list.Add(new NameValuePair("test", "first"));
            Assert.AreEqual(XmlConversionUtil.ConvertObjectToXml(list), to.SourceControlData[0].Value, "SourceControlData[0].Value");
            list.Clear();
            Assert.AreEqual("sc0", to.SourceControlData[0].Name, "SourceControlData[0].Name");

            list.Add(new NameValuePair("commit", "first"));
            Assert.AreEqual(XmlConversionUtil.ConvertObjectToXml(list), to.SourceControlData[1].Value, "SourceControlData[1].Value");
            list.Clear();
            Assert.AreEqual("sc1", to.SourceControlData[1].Name, "SourceControlData[1].Name");
        }
Ejemplo n.º 8
0
        public void EmailSubjectForStillBrokenBuild()
        {
            IntegrationResult result  = IntegrationResultMother.CreateFailed(ThoughtWorks.CruiseControl.Remote.IntegrationStatus.Failure);
            string            subject = GetEmailMessage(result, true).Subject;

            Assert.AreEqual("CCNET: Nice try but no cigare on fixing Project#9", subject);
        }
        public void HandlesNullSourceControlDataValue()
        {
            var from = IntegrationResultMother.CreateSuccessful(DateTime.Now);
            var to   = IntegrationResultMother.CreateSuccessful(DateTime.Now.AddDays(10));

            from.SourceControlData.Add(new NameValuePair("SVN:LastRevision:svn://myserver/mypath", null));

            var sourceControls = new List <ISourceControl> {
                new MockSourceControl(), new MockSourceControl()
            };
            var multiSourceControl = new MultiSourceControl {
                SourceControls = sourceControls.ToArray()
            };

            //// EXECUTE
            var returnedMods = new ArrayList(multiSourceControl.GetModifications(from, to));

            //// VERIFY
            Assert.AreEqual(0, returnedMods.Count, "SourceControlData.Count");

            Assert.AreEqual(2, to.SourceControlData.Count, "SourceControlData.Count");

            Assert.AreEqual("<ArrayOfNameValuePair />", to.SourceControlData[0].Value, "SourceControlData[0].Value");
            Assert.AreEqual("sc0", to.SourceControlData[0].Name, "SourceControlData[0].Name");

            Assert.AreEqual("<ArrayOfNameValuePair><NameValuePair name=\"SVN:LastRevision:svn://myserver/mypath\" /></ArrayOfNameValuePair>", to.SourceControlData[1].Value, "SourceControlData[1].Value");
            Assert.AreEqual("sc1", to.SourceControlData[1].Name, "SourceControlData[1].Name");
        }
Ejemplo n.º 10
0
        public void CreateModifiersListWithUnspecifiedUser()
        {
            IIntegrationResult result = AddModification(IntegrationResultMother.CreateStillSuccessful());

            result.Modifications[0].UserName = null;
            Assert.AreEqual(ExpectedRecipients(always, success), new EmailMessage(result, publisher).Recipients);
        }
Ejemplo n.º 11
0
        public void CreateModifiersListForUnknownUser()
        {
            publisher.IndexedEmailUsers.Remove(modifier.Name);
            IIntegrationResult result = AddModification(IntegrationResultMother.CreateStillSuccessful());

            Assert.AreEqual(ExpectedRecipients(always, success), new EmailMessage(result, publisher).Recipients);
        }
Ejemplo n.º 12
0
 public void TemporaryLabelNotAppliedByDefault()
 {
     vss.ApplyLabel    = false;
     vss.AutoGetSource = false;
     vss.GetSource(IntegrationResultMother.CreateSuccessful());
     mockProcessExecutor.VerifyNoOtherCalls();
 }
Ejemplo n.º 13
0
 public void CanEnforceProjectVobSetIfBaselineTrue()
 {
     clearCase.UseBaseline    = true;
     clearCase.ProjectVobName = null;
     Assert.That(delegate { clearCase.LabelSourceControl(IntegrationResultMother.CreateSuccessful()); },
                 Throws.TypeOf <CruiseControlException>());
 }
Ejemplo n.º 14
0
 public void ShouldBuildCorrectLabelProcessInfo()
 {
     ExpectToExecuteArguments("tag ver-foo");
     cvs.LabelOnSuccess   = true;
     cvs.WorkingDirectory = DefaultWorkingDirectory;
     cvs.LabelSourceControl(IntegrationResultMother.CreateSuccessful("foo"));
 }
Ejemplo n.º 15
0
        public void VerifyGetSourceProcessInfo()
        {
            ExpectToExecuteArguments(ForGetCommand());

            vss.AutoGetSource = true;
            vss.GetSource(IntegrationResultMother.CreateSuccessful(today));
        }
        public void CanGetModificationsIfNoModsAreFound()
        {
            DateTime todatetime   = DateTime.Today;
            DateTime fromdatetime = todatetime.AddDays(-1);

            IIntegrationResult from = IntegrationResultMother.CreateSuccessful(fromdatetime);
            IIntegrationResult to   = IntegrationResultMother.CreateSuccessful(todatetime);

            InitialiseAlienbrain();
            alienbrain.Branch = string.Empty;

            string args = string.Format(Alienbrain.MODIFICATIONS_COMMAND_TEMPLATE,
                                        PROJECT_PATH,
                                        SERVER,
                                        DATABASE,
                                        USER,
                                        PASSWORD,
                                        from.StartTime.ToFileTime(),
                                        to.StartTime.ToFileTime());
            ProcessInfo expectedProcessRequest = NewProcessInfo(args);

            executor.Setup(e => e.Execute(expectedProcessRequest)).Returns(new ProcessResult(Alienbrain.NO_CHANGE, null, 1, false)).Verifiable();
            alienbrain.GetModifications(from, to);
            executor.Verify();
        }
Ejemplo n.º 17
0
        public void GetModificationsForModificationInRootFolder()
        {
            sandboxRoot = TempFileUtil.GetTempPath("MksSandBox");

            Modification addedModification = ModificationMother.CreateModification("myFile.file", null);

            addedModification.Type = "Added";

            mksHistoryParserWrapper.Setup(parser => parser.Parse(It.IsAny <TextReader>(), FROM, TO)).Returns(new Modification[] { addedModification }).Verifiable();
            mksHistoryParserWrapper.Setup(parser => parser.ParseMemberInfoAndAddToModification(It.IsAny <Modification>(), It.IsAny <StringReader>())).Verifiable();
            mockExecutorWrapper.Setup(executor => executor.Execute(It.IsAny <ProcessInfo>())).Returns(new ProcessResult("", null, 0, false)).Verifiable();

            string expectedCommand = string.Format(@"memberinfo --xmlapi --user=CCNetUser --password=CCNetPassword --quiet {0}",
                                                   GeneratePath(@"{0}\myFile.file", sandboxRoot));
            ProcessInfo expectedProcessInfo = ExpectedProcessInfo(expectedCommand);

            mockExecutorWrapper.Setup(executor => executor.Execute(expectedProcessInfo)).Returns(new ProcessResult(null, null, 0, false)).Verifiable();

            string      expectedDisconnectCommand     = string.Format(@"disconnect --user=CCNetUser --password=CCNetPassword --quiet --forceConfirm=yes");
            ProcessInfo expectedDisconnectProcessInfo = ExpectedProcessInfo(expectedDisconnectCommand);

            mockExecutorWrapper.Setup(executor => executor.Execute(expectedDisconnectProcessInfo)).Returns(new ProcessResult(null, null, 0, false)).Verifiable();

            mks = CreateMks(CreateSourceControlXml(), mksHistoryParser, mockProcessExecutor);
            Modification[] modifications = mks.GetModifications(IntegrationResultMother.CreateSuccessful(FROM), IntegrationResultMother.CreateSuccessful(TO));
            Assert.AreEqual(1, modifications.Length);
        }
Ejemplo n.º 18
0
        public void GetModificationsCallsParseMemberInfo()
        {
            Modification addedModification = ModificationMother.CreateModification("myFile.file", "MyFolder");

            addedModification.Type = "Added";

            mksHistoryParserWrapper.ExpectAndReturn("Parse", new Modification[] { addedModification }, new IsTypeOf(typeof(TextReader)), FROM, TO);
            mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", new Modification[] { addedModification }, new IsTypeOf(typeof(Modification)), new IsTypeOf(typeof(StringReader)));
            mockExecutorWrapper.ExpectAndReturn("Execute", new ProcessResult("", null, 0, false), new IsTypeOf(typeof(ProcessInfo)));

            string expectedCommand = string.Format(@"memberinfo --xmlapi --user=CCNetUser --password=CCNetPassword --quiet {0}",
                                                   GeneratePath(@"{0}\MyFolder\myFile.file", sandboxRoot));
            ProcessInfo expectedProcessInfo = ExpectedProcessInfo(expectedCommand);

            mockExecutorWrapper.ExpectAndReturn("Execute", new ProcessResult(null, null, 0, false), expectedProcessInfo);

            string      expectedDisconnectCommand     = string.Format(@"disconnect --user=CCNetUser --password=CCNetPassword --quiet --forceConfirm=yes");
            ProcessInfo expectedDisconnectProcessInfo = ExpectedProcessInfo(expectedDisconnectCommand);

            mockExecutorWrapper.ExpectAndReturn("Execute", new ProcessResult(null, null, 0, false), expectedDisconnectProcessInfo);

            mks = CreateMks(CreateSourceControlXml(), mksHistoryParser, mockProcessExecutor);
            Modification[] modifications = mks.GetModifications(IntegrationResultMother.CreateSuccessful(FROM), IntegrationResultMother.CreateSuccessful(TO));
            Assert.AreEqual(1, modifications.Length);
        }
Ejemplo n.º 19
0
        public void VerifyLabelProcessInfoArguments()
        {
            ExpectToExecuteArguments("label $/fooProject -LnewLabel \"-YJoe Admin,admin\" -I-Y");

            vss.ApplyLabel = true;
            vss.LabelSourceControl(IntegrationResultMother.CreateSuccessful("newLabel"));
        }
Ejemplo n.º 20
0
        public void FindsSimpleChange()
        {
            DateTime dtBeforeChange = DateTime.Parse("1/18/2006 3:34:06 PM", culture);
            DateTime dtAfterChange  = DateTime.Parse("1/18/2006 3:34:08 PM", culture);

            result.StartTime = dtBeforeChange;

            this.ProcessResultOutput = @"
				<vault>
					<history>
						<item version=""78"" date=""1/18/2006 3:34:07 PM"" user=""testuser"" comment=""test comment"" txid=""4"" />
					</history>
					<result success=""yes"" />
				</vault>"                ;
            ExpectToExecuteArguments(@"versionhistory $ -rowlimit 1" + SetAndGetCommonOptionalArguments());

            this.ProcessResultOutput = @"
				<vault>
					<history>
						<item txid=""4"" date=""1/18/2006 3:34:07 PM"" name=""test.cs"" type=""60"" version=""29"" user=""testuser"" comment=""test comment"" actionString=""Checked In"" />
					</history>
					<result success=""yes"" />
				</vault>"                ;
            string itemHistoryArgs = string.Format(@"history $ -excludeactions label,obliterate -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}",
                                                   dtBeforeChange, dtAfterChange, SetAndGetCommonOptionalArguments());

            ExpectToExecuteArguments(itemHistoryArgs);

            Modification[] mods = vault.GetModifications(result, IntegrationResultMother.CreateSuccessful(dtAfterChange));
            Assert.AreEqual(1, mods.Length, "Should have found 1 modification.");

            VerifyAll();

            this.ProcessResultOutput = @"
				<vault>
					<history>
						<item version=""79"" date=""1/18/2006 3:35:07 PM"" user=""testuser"" comment=""test comment"" txid=""5"" />
					</history>
					<result success=""yes"" />
				</vault>"                ;
            ExpectToExecuteArguments(@"versionhistory $ -beginversion 79 -rowlimit 1" + SetAndGetCommonOptionalArguments());

            this.ProcessResultOutput = @"
				<vault>
					<history>
						<item txid=""5"" date=""1/18/2006 3:35:07 PM"" name=""test.cs"" type=""60"" version=""30"" user=""testuser"" comment=""test comment"" actionString=""Checked In"" />
					</history>
					<result success=""yes"" />
				</vault>"                ;
            dtAfterChange            = DateTime.Parse("1/18/2006 3:36:07 PM", culture);
            itemHistoryArgs          = string.Format(@"history $ -excludeactions label,obliterate -rowlimit 0 -begindate {0:s} -enddate {1:s}{2}",
                                                     dtBeforeChange, dtAfterChange, SetAndGetCommonOptionalArguments());
            ExpectToExecuteArguments(itemHistoryArgs);

            mods = vault.GetModifications(result, IntegrationResultMother.CreateSuccessful(dtAfterChange));
            Assert.AreEqual(1, mods.Length, "Should have found 1 modification.");

            VerifyAll();
        }
Ejemplo n.º 21
0
        public void ShouldNotApplyLabelIfTagOnSuccessFalse()
        {
            hg.TagOnSuccess = false;

            mockProcessExecutor.ExpectNoCall("Execute", typeof(ProcessInfo));

            hg.LabelSourceControl(IntegrationResultMother.CreateSuccessful());
        }
Ejemplo n.º 22
0
        public void ShouldCommitModificationsIfSpecified()
        {
            hg.CommitModifications = true;

            ExpectToExecuteArguments(@"commit -u CruiseControl.NET -m ""Modifications of CC.NET build foo""", tempWorkDir);

            hg.LabelSourceControl(IntegrationResultMother.CreateSuccessful("foo"));
        }
Ejemplo n.º 23
0
        public void ShouldApplyLabelIfTagOnSuccessTrue()
        {
            hg.TagOnSuccess = true;

            ExpectToExecuteArguments(@"tag -m ""Tagging CC.NET build foo"" -u CruiseControl.NET -f ccnet_build_foo", tempWorkDir);

            hg.LabelSourceControl(IntegrationResultMother.CreateSuccessful("foo"));
        }
        public void ShouldNotLabelSourceControlifLabelOnSuccessisFalseAndResultisSuccess()
        {
            alienbrain.LabelOnSuccess = false;

            alienbrain.LabelSourceControl(IntegrationResultMother.CreateSuccessful());
            executor.Verify();
            executor.VerifyNoOtherCalls();
        }
        public void ShouldNotLabelSourceControlifLabelOnSuccessisTrueAndResultisFailed()
        {
            alienbrain.LabelOnSuccess = true;

            alienbrain.LabelSourceControl(IntegrationResultMother.CreateFailed());
            executor.Verify();
            executor.VerifyNoOtherCalls();
        }
Ejemplo n.º 26
0
        public void VerifyGetSourceProcessInfoIfUsernameIsNotSpecified()
        {
            ExpectToExecuteArguments(RemoveUsername(ForGetCommand()));

            vss.AutoGetSource = true;
            vss.Username      = "";
            vss.GetSource(IntegrationResultMother.CreateSuccessful(today));
        }
Ejemplo n.º 27
0
        public void GetSourceShouldNotGetCleanCopy()
        {
            ExpectToExecuteArguments(string.Format(System.Globalization.CultureInfo.CurrentCulture, "get $/fooProject/*?* -R -Vd{0} \"-YJoe Admin,admin\" -I-Y -W -GF- -GTM", CommandDate(today)));

            vss.AutoGetSource = true;
            vss.CleanCopy     = false;
            vss.GetSource(IntegrationResultMother.CreateSuccessful(today));
        }
Ejemplo n.º 28
0
        public void ShouldNotApplyLabelIfTagOnSuccessFalse()
        {
            git.TagOnSuccess = false;

            ExpectThatExecuteWillNotBeCalled();

            git.LabelSourceControl(IntegrationResultMother.CreateSuccessful());
        }
Ejemplo n.º 29
0
        public void ShouldNotApplyLabelIfIntegrationFailed()
        {
            git.TagOnSuccess = true;

            ExpectThatExecuteWillNotBeCalled();

            git.LabelSourceControl(IntegrationResultMother.CreateFailed());
        }
Ejemplo n.º 30
0
        public void ShouldApplyLabelWithCustomMessageIfTagOnSuccessTrueAndACustomMessageIsSpecified()
        {
            ExpectToExecuteArguments(string.Format(@"copy -m ""a---- foo ----a"" {0} svn://someserver/tags/foo/foo --no-auth-cache --non-interactive", StringUtil.AutoDoubleQuoteString(DefaultWorkingDirectory)));

            svn.TagOnSuccess     = true;
            svn.TagCommitMessage = "a---- {0} ----a";
            svn.LabelSourceControl(IntegrationResultMother.CreateSuccessful("foo"));
        }