SendProgress() public method

public SendProgress ( System.Guid jobid, string progressMessage ) : void
jobid System.Guid
progressMessage string
return void
		public void ShouldHaveTwoJobProgressesWhenTwoWithSameGuidAreAdded()
		{
			var timer =
				new TrySendJobDetailToManagerTimer(_nodeConfiguration,
				                                     _httpSenderFake,
				                                     1000);

			Assert.IsNotNull(timer);

			var newGuid = Guid.NewGuid();

			timer.SendProgress(newGuid, "Progress message 1.");
			timer.SendProgress(newGuid, "Progress message 2.");

			timer.SendProgress(Guid.NewGuid(), "Progress message 3.");

			Assert.IsTrue(timer.TotalNumberOfJobProgresses(newGuid) == 2,
			              "Two job progresses with same GUID are expected.");

			timer.Dispose();
		}
		public void ShouldHave100JobProgressesWhen100AreAdded()
		{
			var timer =
				new TrySendJobDetailToManagerTimer(_nodeConfiguration,
				                                     _httpSenderFake,
				                                     1000);

			Assert.IsNotNull(timer, "Should be able to instantiate timer.");

			for (var i = 0; i < 100; i++)
			{
				timer.SendProgress(Guid.NewGuid(), "Progress message");
			}

			Assert.IsTrue(timer.TotalNumberOfJobProgresses() == 100,
			              "100 job progresses are expected.");

			timer.Dispose();
		}
		public void ShouldBeAbleToSend200ProgressesWith10ConcurrentProcesses()
		{
			const int numberOfProgesses = 200;
			const int numberOfConcurrentProcesses = 10;

			var timer =
				new TrySendJobDetailToManagerTimer(_nodeConfiguration,
				                                     _httpSenderFake,
				                                     1000);


			var numberOfProgressesReceived = 0;

			timer.SendJobDetailWithSuccessEventHandler += 
				(sender, model) => { numberOfProgressesReceived++; };


			List<Task<int>> tasks=new List<Task<int>>();

			for (var i = 0; i < numberOfConcurrentProcesses; i++)
			{
				tasks.Add(new Task<int>(() =>
				{
					var newGuid = Guid.NewGuid();

					for (var progressLoop = 0; progressLoop < numberOfProgesses; progressLoop++)
					{
						timer.SendProgress(newGuid, "Progress message nr : " + progressLoop);
					}

					return numberOfProgesses;
				}));
			}

			tasks.Add(new Task<int>(() =>
			{
				timer.Start();

				while (!timer.HasAllProgressesBeenSent())
				{

				}

				return 0;
			}));


			foreach (var task in tasks)
			{
				task.Start();
			}

			Task.WaitAll(tasks.ToArray());

			int totalNumberOfProgressesSent = tasks.Sum(task => task.Result);

			Assert.IsTrue(numberOfProgressesReceived == totalNumberOfProgressesSent,
			              "Number of progresses sent must be equal to received.");

			Assert.IsTrue(timer.HasAllProgressesBeenSent(),
			              "All progresses must be sent.");

			timer.Dispose();
		}