public void Utc_diff() { var time = DateTime.Now; var diff = time - time.ToUniversalTime(); SystemUtil.SetTime(DateTime.Now); Assert.AreEqual(diff, SystemUtil.Now - SystemUtil.UtcNow); }
public void CircuitBreaker() { var policy = ActionPolicy .Handle <TimeoutException>() .CircuitBreaker(1.Minutes(), 2); var time = new DateTime(2008, 1, 1); SystemUtil.SetTime(time); // non-handled policy.Do(Nothing); Expect <ArgumentException>(() => policy.Do(RaiseArgument)); // handled below // Raise Expect <TimeoutException>(() => policy.Do(RaiseTimeout)); Expect <TimeoutException>(() => policy.Do(RaiseTimeout)); // Trigger Expect <TimeoutException>(() => policy.Do(RaiseArgument)); Expect <TimeoutException>(() => policy.Do(Nothing)); // Elapse and pass SystemUtil.SetTime(time.AddMinutes(1)); policy.Do(Nothing); // Raise Expect <TimeoutException>(() => policy.Do(RaiseTimeout)); Expect <TimeoutException>(() => policy.Do(RaiseTimeout)); // Elapse and rearm SystemUtil.SetTime(time.AddMinutes(1)); Expect <TimeoutException>(() => policy.Do(RaiseTimeout)); // Non-elapse and trigger SystemUtil.SetTime(time.AddSeconds(119)); Expect <TimeoutException>(() => policy.Do(Nothing)); // Elapse and pass SystemUtil.SetTime(time.AddMinutes(2)); policy.Do(Nothing); }