public Synergy(SynergyConnectionInfo connection, SynergyProjectInfo project, ISynergyCommand command, SynergyParser parser) { this.connection = connection; this.project = project; this.command = command; this.parser = parser; }
public void CanParseNewTasks() { SynergyParser parser = new SynergyParser(); // ngw_de0157~milligan_integrate Hashtable actual = parser.ParseTasks(SynergyMother.NewTaskInfo); // validate that a collection of 8 comments is returned Assert.IsNotNull(actual); Assert.AreEqual(6, actual.Count); // validate that each comment and timestamp exists, and defaults to String.Empty foreach (DictionaryEntry comment in actual) { Assert.IsNotNull(comment); SynergyParser.SynergyTaskInfo info = (SynergyParser.SynergyTaskInfo) comment.Value; Assert.IsNotNull(info.TaskNumber); Assert.IsNotNull(info.TaskSynopsis); Assert.IsNotNull(info.Resolver); } // test that the right comments are returned, and that the order of retrieval // does not matter if (null != actual["15"]) { Assert.AreEqual("lorem ipsum dolerem ", ((SynergyParser.SynergyTaskInfo) actual["15"]).TaskSynopsis); Assert.AreEqual("Insulated Development projects for release PRODUCT/1.0", ((SynergyParser.SynergyTaskInfo) actual["22"]).TaskSynopsis); Assert.AreEqual("jdoe's Insulated Development projects", ((SynergyParser.SynergyTaskInfo) actual["21"]).TaskSynopsis); Assert.AreEqual("IGNORE THIS Sample Task ", ((SynergyParser.SynergyTaskInfo) actual["99"]).TaskSynopsis); Assert.AreEqual("the quick brown fox jumped over the lazy dog ", ((SynergyParser.SynergyTaskInfo) actual["17"]).TaskSynopsis); Assert.AreEqual("0123456789 ~!@#$%^&*()_=", ((SynergyParser.SynergyTaskInfo) actual["1"]).TaskSynopsis); } else { Assert.AreEqual("lorem ipsum dolerem ", ((SynergyParser.SynergyTaskInfo) actual["wwdev#15"]).TaskSynopsis); Assert.AreEqual("Insulated Development projects for release PRODUCT/1.0", ((SynergyParser.SynergyTaskInfo) actual["wwdev#22"]).TaskSynopsis); Assert.AreEqual("jdoe's Insulated Development projects", ((SynergyParser.SynergyTaskInfo) actual["wwdev#21"]).TaskSynopsis); Assert.AreEqual("IGNORE THIS Sample Task ", ((SynergyParser.SynergyTaskInfo) actual["wwdev#99"]).TaskSynopsis); Assert.AreEqual("the quick brown fox jumped over the lazy dog ", ((SynergyParser.SynergyTaskInfo) actual["wwdev#17"]).TaskSynopsis); Assert.AreEqual("0123456789 ~!@#$%^&*()_=", ((SynergyParser.SynergyTaskInfo) actual["wwdev#1"]).TaskSynopsis); } // assert that tasks not in the original list are null Assert.IsNull(actual["123456789"]); }
private void ParseNewObjects(string newTasks, string newObjects) { SynergyParser parser = new SynergyParser(); // set the from date to be one week back DateTime from = DateTime.Now.AddDays(-7L); Modification[] actual = parser.Parse(newTasks, newObjects, from); Assert.IsNotNull(actual); Assert.AreEqual(7, actual.Length); foreach (Modification modification in actual) { Assert.AreEqual("jdoe", modification.EmailAddress); Assert.AreEqual("jdoe", modification.UserName); Assert.IsNull(modification.Url); } Assert.AreEqual("15", actual[0].ChangeNumber); Assert.AreEqual(@"sourcecontrol-3", actual[0].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core", actual[0].FolderName); Assert.AreEqual(@"dir", actual[0].Type); Assert.AreEqual(@"lorem ipsum dolerem ", actual[0].Comment); // test that the last task number is used when an object is associated with multiple tasks Assert.AreEqual("21", actual[1].ChangeNumber); Assert.AreEqual(@"Synergy.cs-1", actual[1].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core/sourcecontrol", actual[1].FolderName); Assert.AreEqual(@"ms_cs", actual[1].Type); // check that trailing spaces are honored Assert.AreEqual("jdoe's Insulated Development projects", actual[1].Comment); Assert.AreEqual("22", actual[2].ChangeNumber); // check that branched version numbers are parsed Assert.AreEqual(@"SynergyCommandBuilder.cs-1.1.1", actual[2].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core/sourcecontrol", actual[2].FolderName); Assert.AreEqual(@"ms_cs", actual[2].Type); Assert.AreEqual("Insulated Development projects for release PRODUCT/1.0", actual[2].Comment); Assert.AreEqual("22", actual[3].ChangeNumber); Assert.AreEqual(@"SynergyConnectionInfo.cs-2", actual[3].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core/sourcecontrol", actual[3].FolderName); Assert.AreEqual(@"ms_cs", actual[3].Type); // check that trailing spaces are honored Assert.AreEqual("Insulated Development projects for release PRODUCT/1.0", actual[3].Comment); Assert.AreEqual("1", actual[4].ChangeNumber); // check that branched version numbers are parsed Assert.AreEqual(@"SynergyHistoryParser.cs-2.2.1", actual[4].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core/sourcecontrol", actual[4].FolderName); Assert.AreEqual(@"ms_cs", actual[4].Type); // check that trailing spaces are honored Assert.AreEqual(@"0123456789 ~!@#$%^&*()_=", actual[4].Comment); Assert.AreEqual("17", actual[5].ChangeNumber); // check that branched version numbers are parsed Assert.AreEqual(@"SynergyProjectInfo.cs-1", actual[5].FileName); Assert.AreEqual(@"$/MyProject/CruiseControl.NET/project/core/sourcecontrol", actual[5].FolderName); Assert.AreEqual(@"ms_cs", actual[5].Type); // check that reserved regular expression classes are escaped Assert.AreEqual(@"the quick brown fox jumped over the lazy dog ", actual[5].Comment); Assert.AreEqual("9999", actual[6].ChangeNumber); // check that branched version numbers are parsed Assert.AreEqual(@"NotUsed-10", actual[6].FileName); Assert.AreEqual(@"", actual[6].FolderName); Assert.AreEqual(@"dir", actual[6].Type); Assert.IsNull(actual[6].Comment); }
public void ParseWhenTasksAreEmpty() { SynergyParser parser = new SynergyParser(); // set the from date to be one week back DateTime from = DateTime.Now.AddDays(-7L); Modification[] actual = parser.Parse(string.Empty, SynergyMother.NewObjects, from); Assert.AreEqual(7, actual.Length); Assert.AreEqual("15", actual[0].ChangeNumber); Assert.AreEqual("9999", actual[6].ChangeNumber); }