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>()); }
public void DoJobSuccess() { // Arrange var service = Substitute.For<IService>(); var db = Substitute.For<IJobsDb>(); var worker = new Worker(service, db); var id = Randomator.RandomFromSample(24, "0123456789ABCDEF"); SubstituteExtensions.ReturnsForAnyArgs( service.CompareDynamic(Arg.Any<dynamic>(), Arg.Any<dynamic>(), Arg.Any<bool>()), new[] { new Comparison { Id = new ObjectId(id) } }); // Act var job = FakeJobs.PendingCompareJob; worker.DoJob(job); // Assert Assert.AreEqual("C", job.Status); Assert.AreEqual(job.CompletedId.ToLower(), id.ToLower()); db.Received(1).UpdateJob(Arg.Any<Job>()); }