/// <summary>Creates a new TaskQueue.</summary>
        /// <param name="id">The identifier.</param>
        /// <returns>A TaskQueue.</returns>
		public static TaskQueue Create(int id)
		{
			TaskQueue taskQueue = new TaskQueue();
			taskQueue.ContentUrn = string.Concat("urn:track:", id);
			taskQueue.CreatedDate = DateTime.Now;
			taskQueue.Task = "Load";
			taskQueue.Status = "Pending";
			taskQueue.NoOfAttempts = 0;
			return taskQueue;
		}
        /// <summary>Assert is equal.</summary>
        /// <param name="actual">  The actual.</param>
        /// <param name="expected">The expected.</param>
		public static void AssertIsEqual(TaskQueue actual, TaskQueue expected)
		{
			Assert.That(actual.Id, Is.EqualTo(expected.Id));
			Assert.That(actual.UserId, Is.EqualTo(expected.UserId));
			Assert.That(actual.ContentUrn, Is.EqualTo(expected.ContentUrn));
			Assert.That(actual.Status, Is.EqualTo(expected.Status));
			try
			{
				Assert.That(actual.CreatedDate, Is.EqualTo(expected.CreatedDate));
			}
			catch (Exception exception)
			{
				TaskQueue.Log.Error("Trouble with DateTime precisions, trying Assert again with rounding to seconds", exception);
				Assert.That(DateTimeExtensions.RoundToSecond(actual.CreatedDate),
						Is.EqualTo(DateTimeExtensions.RoundToSecond(expected.CreatedDate)));
			}
			Assert.That(actual.Priority, Is.EqualTo(expected.Priority));
			Assert.That(actual.NoOfAttempts, Is.EqualTo(expected.NoOfAttempts));
			Assert.That(actual.ErrorMessage, Is.EqualTo(expected.ErrorMessage));
		}