public void ShouldBeAbleToCreateManySuccessJobRequestTest()
{
var startedTest = DateTime.UtcNow;
var manualResetEventSlim = new ManualResetEventSlim();
var createNewJobRequests =
JobHelper.GenerateTestJobRequests(50, TimeSpan.FromSeconds(1));
var checkTablesInManagerDbTimer =
new CheckTablesInManagerDbTimer(ManagerDbConnectionString, 2000);
checkTablesInManagerDbTimer.GetJobItems += (sender, jobs) =>
{
if (jobs.Count == createNewJobRequests.Count &&
jobs.All(job => job.Started != null && job.Ended != null))
{
manualResetEventSlim.Set();
}
};
checkTablesInManagerDbTimer.JobTimer.Start();
foreach (var newJobRequest in createNewJobRequests)
{
var jobId = HttpRequestManager.AddJob(newJobRequest);
}
manualResetEventSlim.Wait(TimeSpan.FromMinutes(5));
var jobsToAssert = checkTablesInManagerDbTimer.ManagerDbRepository.Jobs;
Assert.IsTrue(jobsToAssert.Count == createNewJobRequests.Count);
Assert.IsTrue(jobsToAssert.All(job => job.Result.StartsWith("Success", StringComparison.InvariantCultureIgnoreCase)));
checkTablesInManagerDbTimer.Dispose();
var endedTest = DateTime.UtcNow;
var description =
string.Format("Creates {0} FAST = 1 second jobs with {1} manager and {2} nodes.",
createNewJobRequests.Count,
NumberOfManagers,
NumberOfNodes);
DatabaseHelper.AddPerformanceData(ManagerDbConnectionString,
description,
startedTest,
endedTest);
}