public void Expirable_EqualsStruct() { var v = DateTime.UtcNow; var x = new Expirable <DateTime>(new TimeSpan(0, 0, 0, 0, 10), v); Assert.AreEqual(default(DateTime), x.DefaultValue); Assert.IsTrue(x.Equals(x)); Assert.IsTrue(x.Equals(v)); Assert.IsTrue(x.Equals(new Expirable <DateTime>(3, v))); Assert.AreEqual(v.ToString(), x.ToString()); Assert.IsFalse(x.Equals(v.AddTicks(1))); Assert.IsFalse(x.Equals(new Expirable <DateTime>(3, v.AddTicks(1)))); Assert.IsFalse(x.Equals(null)); DateTime v2; var r2 = x.TryGet(out v2); Assert.IsTrue(r2); Assert.AreEqual(v, v2); x.Expire(); Assert.IsTrue(x.Equals(DateTime.MinValue)); Assert.AreEqual(DateTime.MinValue.ToString(), x.ToString()); DateTime v3; var r3 = x.TryGet(out v3); Assert.IsFalse(r3); Assert.AreEqual(x.DefaultValue, v3); }
public void Expirable_EqualsClass() { var v = "Test"; var x = new Expirable <string>(new TimeSpan(0, 0, 0, 0, 10), v); Assert.AreEqual(null, x.DefaultValue); Assert.IsTrue(x.Equals(x)); Assert.IsTrue(x.Equals(v)); Assert.IsTrue(x.Equals(new Expirable <string>(3, "Test"))); Assert.AreEqual(v.ToString(), x.ToString()); Assert.IsFalse(x.Equals("Test2")); Assert.IsFalse(x.Equals(new Expirable <string>(3, "Test2"))); Assert.IsFalse(x.Equals(null)); string v2; var r2 = x.TryGet(out v2); Assert.IsTrue(r2); Assert.AreEqual(v, v2); x.Expire(); Assert.IsTrue(x.Equals(null)); Assert.AreEqual("", x.ToString()); string v3; var r3 = x.TryGet(out v3); Assert.IsFalse(r3); Assert.AreEqual(x.DefaultValue, v3); }
public void ExpiredWithCounter() { int counter = 10; Expirable <int> expiredNewValue = new Expirable <int>(() => counter++, i => DateTime.Now.AddSeconds(-i)); Assert.AreEqual(10, expiredNewValue.Value); Assert.AreEqual(11, expiredNewValue.Value); Assert.AreEqual(12, expiredNewValue.Value); }
public void Expirable_Defaults() { var v = DateTime.UtcNow; var x = new Expirable <DateTime>(new TimeSpan(0, 0, 0, 0, 10), v, DateTime.MaxValue); Assert.AreEqual(true, x.HasValue); Assert.AreEqual(v, x.Value); Thread.Sleep(10); Assert.AreEqual(false, x.HasValue); Assert.AreEqual(DateTime.MaxValue, x); }
public async Task ScheduleExpiry() { if (ExpirationTime == 0.0f) { return; } Expirable expriable = this; await Task.Delay((int)((ExpirationTime - Time.time) * 1000.0f)); expriable.Expire(); expriable = null; }
public void Expirable_Basic() { var v = DateTime.UtcNow; var x = new Expirable <DateTime>(new TimeSpan(0, 0, 0, 0, 10), v); Assert.AreEqual(true, x.HasValue); Assert.AreEqual(v, x.Value); Thread.Sleep(10); Assert.AreEqual(false, x.HasValue); Assert.AreEqual(DateTime.MinValue, x); Assert.AreEqual(DateTime.MinValue.ToString(), x.ToString()); }
public void ExpiredThenLaterNotExpired() { bool value = true; var expirable = new Expirable <int>(() => 10, i => { if (value) //expired first time { value = false; return(DateTime.Now.AddSeconds(-10)); } else //non-expired second time { return(DateTime.Now.AddSeconds(10)); } }); Assert.IsTrue(expirable.Expired); var trash = expirable.Value; Assert.IsFalse(expirable.Expired); }
void Start() { spriteRenderer = GetComponent <SpriteRenderer>(); expirable = GetComponent <Expirable>(); }
/// <summary> /// TODO. /// </summary> public void Set(string key, T value) { _cache[key] = new Expirable( value: value, expirationTime: _clock.GetStopwatchTime().Add(_expirationTimeOffset)); }
public void Expirable_EqualsStruct() { var v = DateTime.UtcNow; var x = new Expirable <DateTime>(new TimeSpan(0, 0, 0, 0, 10), v); Assert.AreEqual(default, x.DefaultValue);
public void NonExpired() { var nonExpired = new Expirable <int>(() => 10, i => DateTime.Now.AddSeconds(i)); Assert.IsFalse(nonExpired.Expired); }
public void Expired() { var expired = new Expirable <int>(() => 10, i => DateTime.Now.AddSeconds(-i)); Assert.IsTrue(expired.Expired); }
/// <summary> /// TODO. /// </summary> public void Set(string key, T value) { _cache[key] = new Expirable( value: value, expirationTime: _timer.CurrentTime.Add(_expirationTimeOffset)); }