Esempio n. 1
0
 public Synergy(SynergyConnectionInfo connection, SynergyProjectInfo project, ISynergyCommand command, SynergyParser parser)
 {
     this.connection = connection;
     this.project    = project;
     this.command    = command;
     this.parser     = parser;
 }
Esempio n. 2
0
 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);
		}