public void QueuesCompletedDuringDataLoading() { var completion = new ManualResetEvent(false); var completedCallCount = 0; var repository = new TestCachedRepository(); repository.GetData(items => { completedCallCount++; }); repository.GetData(items => { completedCallCount++; }); repository.GetData(items => { completedCallCount++; completion.Set(); }); completion.WaitOne(1000); Assert.AreEqual(3, completedCallCount); }
public void IsNotNullWhenDataIsLoaded() { var completion = new ManualResetEvent(false); var repository = new TestCachedRepository(); repository.GetData(); completion.WaitOne(1000); Assert.IsNotNull(repository.Data); }
public void CallsCompletedAfterDataLoading() { var completion = new ManualResetEvent(false); var completedCallCount = 0; var repository = new TestCachedRepository(); repository.GetData(items => completedCallCount++); completion.WaitOne(1000); Assert.AreEqual(1, completedCallCount); }
public void IsSetToTrueAfterDataHasBeenLoaded() { var completion = new ManualResetEvent(false); var completedCallCount = 0; var repository = new TestCachedRepository(); repository.GetData(items => completedCallCount++); Assert.IsFalse(repository.IsDataLoaded); completion.WaitOne(1000); Assert.IsTrue(repository.IsDataLoaded); }
public void IsValidWhenDataIsLoaded() { var completion = new ManualResetEvent(false); DateTime dateTime = DateTime.MinValue; var repository = new TestCachedRepository(); repository.GetData(items => dateTime = DateTime.Now); completion.WaitOne(1000); // Don't check for milliseconds, they can differ Assert.AreEqual(dateTime.Hour, repository.DataLoadedTimestamp.Hour); Assert.AreEqual(dateTime.Minute, repository.DataLoadedTimestamp.Minute); Assert.AreEqual(dateTime.Second, repository.DataLoadedTimestamp.Second); }
public void IsToggledDuringDataLoading() { var completion = new ManualResetEvent(false); var completedCallCount = 0; var repository = new TestCachedRepository(); Assert.IsFalse(repository.IsLoadingData); repository.GetData(items => completedCallCount++); Assert.IsTrue(repository.IsLoadingData); completion.WaitOne(1000); Assert.IsFalse(repository.IsLoadingData); }
public void ExpiresTheLoadedDataCorrectly() { var completion = new ManualResetEvent(false); var repository = new TestCachedRepository(); repository.Expiration = new TimeSpan(0, 0, 2); repository.GetData(); completion.WaitOne(1000); Assert.IsTrue(repository.IsDataLoaded); Assert.IsNotNull(repository.Data); completion = new ManualResetEvent(false); completion.WaitOne(3000); Assert.IsFalse(repository.IsDataLoaded); Assert.IsNull(repository.Data); }