Exemple #1
0
            public void IsNotNullWhenDataIsLoaded()
            {
                var completion = new ManualResetEvent(false);

                var repository = new TestCachedRepository();

                repository.GetData();

                completion.WaitOne(1000);

                Assert.IsNotNull(repository.Data);
            }
Exemple #2
0
            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);
            }
Exemple #3
0
            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);
            }
Exemple #4
0
            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);
            }
Exemple #5
0
            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);
            }
Exemple #6
0
            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);
            }
Exemple #7
0
            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);
            }