public void DoJobError()
{
// Arrange
var service = Substitute.For<IService>();
var db = Substitute.For<IJobsDb>();
var worker = new Worker(service, db);
service.When(s => s.CompareDynamic(Arg.Any<dynamic>(), Arg.Any<dynamic>(), Arg.Any<bool>()))
.Do(x => { throw new Exception("Comparison failed"); });
// Act
var job = FakeJobs.PendingCompareJob;
worker.DoJob(job);
// Assert
Assert.AreEqual("E", job.Status);
Assert.IsTrue(string.IsNullOrWhiteSpace(job.CompletedId));
Assert.IsTrue(job.ErrorText.Contains("Comparison failed"));
db.Received(1).UpdateJob(Arg.Any<Job>());
}