コード例 #1
0
        public void StoreIsLocalDiskWhenConfigurationIsLocalDisk()
        {
            var container = new Container();
            var config    = Mock.Of <IRRConfiguration>(c => c.ContentStore == Configuration.Store.LocalDiskStore);

            container.Configure(x =>
            {
                x.For <IRRConfiguration>().Use(config);
                x.For <IFileWrapper>().Use(Mock.Of <IFileWrapper>());
                x.For <IUriBuilder>().Use(Mock.Of <IUriBuilder>());
                x.For <IReductionRepository>().Use(Mock.Of <IReductionRepository>());
            });
            RRContainer.LoadAppropriateStoreRegistry(container);

            var result = container.GetInstance <IStore>();

            Assert.IsType <LocalDiskStore>(result);
        }
コード例 #2
0
        public void StoreIsSqlServerWhenConfigurationIsSqlServerAndAssemblyExists()
        {
            var container = new Container();
            var config    = new Mock <IRRConfiguration>();

            config.Setup(c => c.ContentStore).Returns(Configuration.Store.SqlServerStore);
            config.Setup(x => x.ConnectionStringName).Returns("RRConnection");
            container.Configure(x => x.For <IRRConfiguration>().Use(config.Object));
            container.Configure(x =>
            {
                x.For <IUriBuilder>().Use(Mock.Of <IUriBuilder>());
                x.For <IFileRepository>().Use(Mock.Of <IFileRepository>());
                x.For <IReductionRepository>().Use(Mock.Of <IReductionRepository>());
                x.For <IFileWrapper>().Use(Mock.Of <IFileWrapper>());
            });
            RRContainer.LoadAppropriateStoreRegistry(container);

            var result = container.GetInstance <IStore>();

            Assert.IsType <SqlServerStore>(result);
        }
コード例 #3
0
        public void DbDiskCacheIsSingleton()
        {
            var container = RRContainer.Current;
            var config    = new Mock <IRRConfiguration>();

            config.Setup(c => c.ContentStore).Returns(Configuration.Store.SqlServerStore);
            config.Setup(x => x.ConnectionStringName).Returns("RRConnection");
            container.Configure(x => x.For <IRRConfiguration>().Use(config.Object));
            RRContainer.LoadAppropriateStoreRegistry(container);
            SqlServerStore store1  = null;
            SqlServerStore store2  = null;
            var            thread1 = new Thread(TestThreadStart)
            {
                IsBackground = true
            };
            var thread2 = new Thread(TestThreadStart)
            {
                IsBackground = true
            };
            var array1 = new ArrayList {
                container, store1
            };
            var array2 = new ArrayList {
                container, store2
            };

            lock (container)
            {
                thread1.Start(array1);
                Monitor.Wait(container, 10000);
                thread2.Start(array2);
                Monitor.Wait(container, 10000);
            }

            Assert.NotSame(array1[1], array2[1]);
            Assert.Same((array1[1] as SqlServerStore).FileStore as DbDiskCache, (array2[1] as SqlServerStore).FileStore as DbDiskCache);
            RRContainer.Current = null;
        }