protected void UpdateWorking()
{
if (this.Repository != null)
{
IJob job = new TestJob() { Id = Guid.NewGuid() };
WorkerRecord workerRecord = new WorkerRecord()
{
ApplicationName = BlueCollarSection.Section.ApplicationName,
MachineAddress = Machine.Address,
MachineName = Machine.Name,
Name = "Test Worker",
QueueNames = "*",
Signal = WorkerSignal.Stop,
Status = WorkerStatus.Working,
Startup = WorkerStartupType.Automatic,
UpdatedOn = DateTime.UtcNow
};
this.Repository.CreateWorker(workerRecord, null);
WorkingRecord workingRecord = new WorkingRecord()
{
ApplicationName = workerRecord.ApplicationName,
Data = JobSerializer.Serialize(job),
JobName = job.Name,
JobType = JobSerializer.GetTypeName(job),
QueueName = "*",
QueuedOn = DateTime.UtcNow,
Signal = WorkingSignal.Cancel,
StartedOn = DateTime.UtcNow,
TryNumber = 1,
WorkerId = workerRecord.Id.Value
};
this.Repository.CreateWorking(workingRecord, null);
job = new TestJob() { Id = Guid.NewGuid() };
workingRecord.Data = JobSerializer.Serialize(job);
workingRecord.JobName = "Updated";
workingRecord.JobType = "Updated";
workingRecord.QueuedOn = new DateTime(2011, 1, 1, 0, 0, 0, DateTimeKind.Utc);
workingRecord.QueueName = "test";
workingRecord.Signal = WorkingSignal.None;
workingRecord.StartedOn = new DateTime(2011, 1, 1, 0, 0, 0, DateTimeKind.Utc);
workingRecord.TryNumber = 2;
this.Repository.UpdateWorking(workingRecord, null);
WorkingRecord updated = this.Repository.GetWorking(workingRecord.Id.Value, null);
Assert.AreEqual(workingRecord.Data, updated.Data);
Assert.AreEqual(workingRecord.JobName, updated.JobName);
Assert.AreEqual(workingRecord.JobType, updated.JobType);
Assert.AreEqual(workingRecord.QueuedOn, updated.QueuedOn);
Assert.AreEqual(workingRecord.QueueName, updated.QueueName);
Assert.AreEqual(workingRecord.Signal, updated.Signal);
Assert.AreEqual(workingRecord.StartedOn, updated.StartedOn);
Assert.AreEqual(workingRecord.TryNumber, updated.TryNumber);
}
}