public void CheckDefaults() { Mks defalutMks = new Mks(); Assert.AreEqual(@"si.exe", defalutMks.Executable); Assert.AreEqual(8722, defalutMks.Port); Assert.AreEqual(true, defalutMks.AutoGetSource); Assert.AreEqual(false, defalutMks.CheckpointOnSuccess); Assert.AreEqual(false, defalutMks.AutoDisconnect); }
public void ValuePopulation() { mks = CreateMks(CreateSourceControlXml(), null, null); Assert.AreEqual(@"..\bin\si.exe", mks.Executable); Assert.AreEqual(@"hostname", mks.Hostname); Assert.AreEqual(8722, mks.Port); Assert.AreEqual(@"CCNetUser", mks.User); Assert.AreEqual(@"CCNetPassword", mks.Password); Assert.AreEqual(sandboxRoot, mks.SandboxRoot); Assert.AreEqual(@"myproject.pj", mks.SandboxFile); Assert.AreEqual(true, mks.AutoGetSource); Assert.AreEqual(true, mks.CheckpointOnSuccess); Assert.AreEqual(true, mks.AutoDisconnect); }
private static Mks CreateMks(string xml, IHistoryParser historyParser, ProcessExecutor executor) { Mks newMks = new Mks(historyParser, executor); NetReflector.Read(xml, newMks); return newMks; }
public void GetModificationsCallsMemberInfoForNonDeletedModifications() { Modification addedModification = ModificationMother.CreateModification("myFile.file", "MyFolder"); addedModification.Type = "Added"; Modification modifiedModification = ModificationMother.CreateModification("myFile.file", "MyFolder"); modifiedModification.Type = "Modified"; Modification deletedModification = ModificationMother.CreateModification("myFile.file", "MyFolder"); deletedModification.Type = "Deleted"; mksHistoryParserWrapper.ExpectAndReturn("Parse", new Modification[] {addedModification, modifiedModification, deletedModification}, new IsTypeOf(typeof (TextReader)), FROM, TO); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, addedModification, new IsTypeOf(typeof(StringReader))); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, modifiedModification, new IsTypeOf(typeof(StringReader))); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, deletedModification, new IsTypeOf(typeof(StringReader))); mockExecutorWrapper.SetupResult("Execute", new ProcessResult("", null, 0, false), new Type[]{typeof (ProcessInfo)}); mks = CreateMks(CreateSourceControlXml(), mksHistoryParser, mockProcessExecutor); Modification[] modifications = mks.GetModifications(IntegrationResultMother.CreateSuccessful(FROM), IntegrationResultMother.CreateSuccessful(TO)); Assert.AreEqual(3, modifications.Length); }
public void GetModificationsFiltersByModifiedTimeIfCheckpointOnSuccessIsFalse() { Modification modificationBeforePreviousIntegration = ModificationMother.CreateModification("ccnet", FROM.AddMinutes(-2)); Modification modificationInThisIntegration = ModificationMother.CreateModification("ccnet", TO.AddMinutes(-1)); Modification modificationAfterIntegrationStartTime = ModificationMother.CreateModification("myFile.file", TO.AddMinutes(1)); Modification[] integrationModifications = new Modification[] {modificationBeforePreviousIntegration, modificationInThisIntegration, modificationAfterIntegrationStartTime}; mksHistoryParserWrapper.ExpectAndReturn("Parse", integrationModifications, new IsTypeOf(typeof (TextReader)), FROM, TO); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, modificationBeforePreviousIntegration, new IsTypeOf(typeof(StringReader))); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, modificationInThisIntegration, new IsTypeOf(typeof(StringReader))); mksHistoryParserWrapper.ExpectAndReturn("ParseMemberInfoAndAddToModification", null, modificationAfterIntegrationStartTime, new IsTypeOf(typeof(StringReader))); mockExecutorWrapper.SetupResult("Execute", new ProcessResult("", null, 0, false), new Type[]{typeof (ProcessInfo)}); mks = CreateMks(CreateSourceControlXml(), mksHistoryParser, mockProcessExecutor); mks.CheckpointOnSuccess = false; Modification[] modifications = mks.GetModifications(IntegrationResultMother.CreateSuccessful(FROM), IntegrationResultMother.CreateSuccessful(TO)); Assert.AreEqual(1, modifications.Length); }
public void GetModificationsForModificationInRootFolder() { sandboxRoot = TempFileUtil.GetTempPath("MksSandBox"); Modification addedModification = ModificationMother.CreateModification("myFile.file", null); 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}\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); }
public void GetModificationsCallsParseOnHistoryParser() { mksHistoryParserWrapper.ExpectAndReturn("Parse", new Modification[0], new IsTypeOf(typeof (TextReader)), FROM, TO); mksHistoryParserWrapper.ExpectNoCall("ParseMemberInfoAndAddToModification", new Type[] {(typeof (Modification)), typeof (StringReader)}); ProcessInfo expectedProcessInfo = ExpectedProcessInfo(string.Format(@"viewsandbox --nopersist --filter=changed:all --xmlapi -R -S {0} --user=CCNetUser --password=CCNetPassword --quiet", GeneratePath(@"{0}\myproject.pj", sandboxRoot))); 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(0, modifications.Length); }
public void CheckpointSourceOnUnSuccessfulBuild() { 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); mockIntegrationResult.ExpectAndReturn("Succeeded", false); mockIntegrationResult.ExpectNoCall("Label", typeof (string)); mks = CreateMks(CreateSourceControlXml(), mockHistoryParser, mockProcessExecutor); mks.LabelSourceControl(integrationResult); }
public void CheckpointSourceOnSuccessfulBuild() { string path = GeneratePath(@"{0}\myproject.pj", sandboxRoot); string expectedCommand = string.Format(@"checkpoint -d ""Cruise Control.Net Build - 20"" -L ""Build - 20"" -R -S {0} --user=CCNetUser --password=CCNetPassword --quiet", path); 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); mockIntegrationResult.ExpectAndReturn("Succeeded", true); mockIntegrationResult.ExpectAndReturn("Label", "20"); mks = CreateMks(CreateSourceControlXml(), mockHistoryParser, mockProcessExecutor); mks.LabelSourceControl(integrationResult); }
public void GetSourceWithSpacesInSandbox() { sandboxRoot = TempFileUtil.GetTempPath("Mks Sand Box"); string expectedResyncCommand = string.Format(@"resync --overwriteChanged --restoreTimestamp --forceConfirm=yes --includeDropped -R -S ""{0}\myproject.pj"" --user=CCNetUser --password=CCNetPassword --quiet", sandboxRoot); mockExecutorWrapper.ExpectAndReturn("Execute", new ProcessResult(null, null, 0, false), ExpectedProcessInfo(expectedResyncCommand)); string expectedAttribCommand = string.Format(@"-R /s ""{0}\*""", sandboxRoot); mockExecutorWrapper.ExpectAndReturn("Execute", new ProcessResult(null, null, 0, false), ExpectedProcessInfo("attrib", expectedAttribCommand)); 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(), mockHistoryParser, mockProcessExecutor); mks.GetSource(new IntegrationResult()); }