예제 #1
0
        public void ShouldReturnTheSameObjectAfterTheFirstCall()
        {
            TSupplierMock             supplier  = new TSupplierMock("mock-supplier");
            MemoizingSupplier <TMock> memoizing =
                new MemoizingSupplier <TMock>(supplier);

            Assert.AreEqual(memoizing.Supply(), memoizing.Supply());
        }
예제 #2
0
        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());
        }