public void UtcNow() { var startDateTime = DateTime.UtcNow; var provider = new UtcNowProvider(); var result = provider.UtcNow; var endDateTime = DateTime.UtcNow; Assert.That(result, Is.GreaterThanOrEqualTo(startDateTime)); Assert.That(result, Is.LessThanOrEqualTo(endDateTime)); }
public async Task Test_that_messages_are_rejected_in_right_order() { var consumerMock = new Mock <IMessageConsumer>(); var deliveryTagsInActualOrder = new List <ulong>(); consumerMock .Setup(x => x.Reject(It.IsAny <ulong>())) .Callback <ulong>(tag => { deliveryTagsInActualOrder.Add(tag); }); var utcNowProvider = new UtcNowProvider { NextValue = DateTime.UtcNow }; var rejectManager = new RejectManager ( EmptyLogFactory.Instance, () => utcNowProvider.NextValue ); var deliveryTagsInExpectedOrder = Enumerable .Range(0, 999) .OrderBy(x => Guid.NewGuid()) .Select(x => (ulong)x) .ToList(); var rejectAfter = 0; foreach (var deliveryTag in deliveryTagsInExpectedOrder) { rejectManager.ScheduleReject ( GenerateMessage(deliveryTag, consumerMock.Object), new TimeSpan(rejectAfter++) ); } utcNowProvider.NextValue = utcNowProvider.NextValue.AddMilliseconds(rejectAfter); rejectManager.Start(); await rejectManager.StopAsync(); deliveryTagsInActualOrder .Should() .Equal(deliveryTagsInExpectedOrder); }