public async Task delete_multiple_incoming_envelope() { var list = new List <Envelope>(); for (var i = 0; i < 10; i++) { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; list.Add(envelope); } await ThePersistence.StoreIncoming(list.ToArray()); var toDelete = new[] { list[2], list[3], list[7] }; await ThePersistence.DeleteIncomingEnvelopes(toDelete); var stored = ThePersistence.AllIncomingEnvelopes(); stored.Length.ShouldBe(7); stored.Any(x => x.Id == list[2].Id).ShouldBeFalse(); stored.Any(x => x.Id == list[3].Id).ShouldBeFalse(); stored.Any(x => x.Id == list[7].Id).ShouldBeFalse(); }
public async Task schedule_execution() { var list = new List <Envelope>(); for (var i = 0; i < 10; i++) { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; list.Add(envelope); } await ThePersistence.StoreIncoming(list.ToArray()); list[5].ExecutionTime = DateTimeOffset.Now.AddMinutes(5); list[7].ExecutionTime = DateTimeOffset.Now.AddMinutes(5); list[9].ExecutionTime = DateTimeOffset.Now.AddMinutes(5); await ThePersistence.ScheduleExecution(new[] { list[5], list[7], list[9] }); var stored = ThePersistence.AllIncomingEnvelopes(); stored.Count(x => x.Status == TransportConstants.Incoming).ShouldBe(7); stored.Count(x => x.Status == TransportConstants.Scheduled).ShouldBe(3); stored.Single(x => x.Id == list[5].Id).ExecutionTime.HasValue.ShouldBeTrue(); stored.Single(x => x.Id == list[7].Id).ExecutionTime.HasValue.ShouldBeTrue(); stored.Single(x => x.Id == list[9].Id).ExecutionTime.HasValue.ShouldBeTrue(); }
public async Task move_to_dead_letter_storage() { var list = new List <Envelope>(); for (var i = 0; i < 10; i++) { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; list.Add(envelope); } await ThePersistence.StoreIncoming(list.ToArray()); var ex = new DivideByZeroException("Kaboom!"); var report2 = new ErrorReport(list[2], ex); var report3 = new ErrorReport(list[3], ex); var report4 = new ErrorReport(list[4], ex); await ThePersistence.MoveToDeadLetterStorage(new[] { report2, report3, report4 }); var stored = ThePersistence.AllIncomingEnvelopes(); stored.Length.ShouldBe(7); stored.Any(x => x.Id == list[2].Id).ShouldBeFalse(); stored.Any(x => x.Id == list[3].Id).ShouldBeFalse(); stored.Any(x => x.Id == list[4].Id).ShouldBeFalse(); }
public async Task store_a_single_incoming_envelope() { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; await ThePersistence.StoreIncoming(envelope); var stored = ThePersistence.AllIncomingEnvelopes().Single(); stored.Id.ShouldBe(envelope.Id); stored.OwnerId.ShouldBe(envelope.OwnerId); stored.Status.ShouldBe(envelope.Status); }
public async Task increment_the_attempt_count_of_incoming_envelope() { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; await ThePersistence.StoreIncoming(envelope); var prop = ReflectionHelper.GetProperty <Envelope>(x => x.Attempts); prop.SetValue(envelope, 3); await ThePersistence.IncrementIncomingEnvelopeAttempts(envelope); var stored = ThePersistence.AllIncomingEnvelopes().Single(); stored.Attempts.ShouldBe(3); }
public async Task store_multiple_incoming_envelopes() { var list = new List <Envelope>(); for (var i = 0; i < 10; i++) { var envelope = ObjectMother.Envelope(); envelope.Status = TransportConstants.Incoming; list.Add(envelope); } await ThePersistence.StoreIncoming(list.ToArray()); var stored = ThePersistence.AllIncomingEnvelopes(); list.Select(x => x.Id).OrderBy(x => x) .ShouldHaveTheSameElementsAs(stored.Select(x => x.Id).OrderBy(x => x)); }