public void ShouldReturnTheSameObjectAfterTheFirstCall() { TSupplierMock supplier = new TSupplierMock("mock-supplier"); MemoizingSupplier<TMock> memoizing = new MemoizingSupplier<TMock>(supplier); Assert.AreEqual(memoizing.Supply(), memoizing.Supply()); }
public void ShouldReturnSameObjectWhileItIsNotExpired() { TSupplierMock supplier = new TSupplierMock("supplier"); ExpiringMemoizingSupplier<TMock> expiring_supplier = new ExpiringMemoizingSupplier<TMock>(supplier, duration, TimeUnit.Seconds); TMock instance = expiring_supplier.Supply(); Assert.AreEqual(instance, expiring_supplier.Supply()); Thread.Sleep(3*1000); Assert.AreEqual(instance, expiring_supplier.Supply()); Thread.Sleep(3*1000); Assert.AreNotEqual(instance, expiring_supplier.Supply()); }