Esempio n. 1
0
        public void Create()
        {
            var result = ExpiringDataStoreFactory.Create(_expirationPolicy, _comparer);

            Assert.That(result, Is.TypeOf(typeof(ExpiringDataStore <string, object, DateTime, DateTime>)));
            var expirationPolicy = PrivateInvoke.GetNonPublicField(result, "_expirationPolicy");

            Assert.That(expirationPolicy, Is.SameAs(_expirationPolicy));
            var innerDataStore = PrivateInvoke.GetNonPublicField(result, "_innerDataStore");

            Assert.That(innerDataStore, Is.TypeOf(typeof(SimpleDataStore <string, Tuple <object, DateTime> >)));
            Assert.That(((SimpleDataStore <string, Tuple <object, DateTime> >)innerDataStore).Comparer, Is.SameAs(_comparer));
        }
Esempio n. 2
0
        public void CreateWithLazyLocking()
        {
            var policy = MockRepository.GenerateStub <IExpirationPolicy <DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper>, DateTime, DateTime> > ();

            var result = ExpiringDataStoreFactory.CreateWithLazyLocking(policy, _comparer);

            Assert.That(result, Is.TypeOf(typeof(LazyLockingDataStoreAdapter <string, object>)));
            var innerDataStore = PrivateInvoke.GetNonPublicField(result, "_innerDataStore");

            Assert.That(innerDataStore, Is.TypeOf(typeof(LockingDataStoreDecorator <string, DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper> >)));
            var innerStore = PrivateInvoke.GetNonPublicField(innerDataStore, "_innerStore");

            Assert.That(innerStore, Is.TypeOf(typeof(ExpiringDataStore <string, DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper>, DateTime, DateTime>)));
            var expirationPolicy = PrivateInvoke.GetNonPublicField(innerStore, "_expirationPolicy");

            Assert.That(expirationPolicy, Is.SameAs(expirationPolicy));
            var innerInnerDataStore = PrivateInvoke.GetNonPublicField(innerStore, "_innerDataStore");

            Assert.That(innerInnerDataStore, Is.TypeOf(typeof(SimpleDataStore <string, Tuple <DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper>, DateTime> >)));
            Assert.That(((SimpleDataStore <string, Tuple <DoubleCheckedLockingContainer <LazyLockingDataStoreAdapter <string, object> .Wrapper>, DateTime> >)innerInnerDataStore).Comparer, Is.SameAs(_comparer));
        }