Beispiel #1
0
            public UnitTestableHandlebarsViewEngine(ICacheProvider cacheProvider) : base(cacheProvider)
            {
                var viewLocationCache   = new Mock <IViewLocationCache>(MockBehavior.Strict);
                var composerEnvironment = ComposerEnvironmentFactory.Create();

                VirtualPathProvider = composerEnvironment.Object.VirtualPathProvider;
                ViewLocationCache   = viewLocationCache.Object;
            }
        public void SetUp()
        {
            _container = new AutoMocker();
            _container.Use(CacheProviderFactory.CreateForLocalizationTree());
            _container.Use(ComposerEnvironmentFactory.Create());

            _localizationProvider = _container.CreateInstance <ResourceLocalizationProvider>();
        }
        public void SetUp()
        {
            // Reset static properties
            typeof(Composer.ComposerHost)
            .GetProperty("Current")
            .GetSetMethod(true)
            .Invoke(null, new object[] { null });

            //Reset Handlerbars static state
            Handlebars.Configuration.Helpers.Clear();
            Handlebars.Configuration.BlockHelpers.Clear();


            // Default setup for all required entities
            Composer.ComposerHost host = new Composer.ComposerHost(Assembly.GetExecutingAssembly());

            // Mock AspNetConfigManager
            Mock <IAspNetConfigurationManager> aspNetConfigManagerMock = new Mock <IAspNetConfigurationManager>(MockBehavior.Strict);

            aspNetConfigManagerMock
            .Setup(config => config.Configure(It.IsAny <ILifetimeScope>(), It.IsAny <IViewEngine>(), It.IsAny <MediaTypeFormatter>()));
            host.SetAspNetConfigurationManager(aspNetConfigManagerMock.Object);

            // Mock AssemblyHelper
            var assemblyHelper = new Mock <Composer.AssemblyHelper>();

            assemblyHelper.Setup(helper => helper.SafeLoadAssemblies(It.IsAny <string>()))
            .Returns(() => new _Assembly[0]);
            host.SetAssemblyHelper(assemblyHelper.Object);

            // Mock Composer Environment
            var composerEnvironment = ComposerEnvironmentFactory.Create();

            host.SetComposerEnvironment(composerEnvironment.Object);

            //Add some additionnal dependencies expected to be set by a plugin (what?!)
            var lookupService = new Mock <ILookupService>(MockBehavior.Strict);

            host.Register <ILookupService>(lookupService.Object);
            var currencyProviderMock = new Mock <ICurrencyProvider>(MockBehavior.Strict);

            host.Register <ICurrencyProvider>(currencyProviderMock.Object);
            _composerHost      = host;
            _serviceLocatorMoq = new ServiceLocatorMoq();
        }
        public async Task WHEN_Passing_Any_Culture_Resulting_TreeStructure_SHOULD_Be_Cached_ByCulture()
        {
            //Arrange
            CacheProviderFactory.CacheHistMonitor monitor = new CacheProviderFactory.CacheHistMonitor();
            LocalizationTree cachedTree = new LocalizationTree(CultureInfo.CurrentCulture);

            AutoMocker container = new AutoMocker();

            container.Use(CacheProviderFactory.CreateWithMonitor(monitor, cachedTree));
            container.Use(ComposerEnvironmentFactory.Create());

            ILocalizationProvider localizationProvider = container.CreateInstance <ResourceLocalizationProvider>();

            CultureInfo cultureA = CultureInfo.GetCultureInfo("fr-CA");
            CultureInfo cultureB = CultureInfo.GetCultureInfo("fr-FR");

            //Act
            monitor.Reset();
            monitor.CacheMissCount.ShouldBeEquivalentTo(0, "Otherwise this test is irrelevent");
            monitor.CacheHitCount.ShouldBeEquivalentTo(0, "Otherwise this test is irrelevent");

            LocalizationTree tree1A = await localizationProvider.GetLocalizationTreeAsync(cultureA);

            monitor.CacheMissCount.ShouldBeEquivalentTo(1, "First attempt to load the CultureA should cache miss");

            LocalizationTree tree2A = await localizationProvider.GetLocalizationTreeAsync(cultureA);

            monitor.CacheHitCount.ShouldBeEquivalentTo(1, "Second attempt to load the CultureA should cache hit");

            monitor.Reset();
            for (int i = 0; i < 10; i++)
            {
                LocalizationTree tree3A = await localizationProvider.GetLocalizationTreeAsync(cultureA);
            }
            monitor.CacheMissCount.ShouldBeEquivalentTo(0, "Subsequent attempt to load the CultureA should not cache miss");
            monitor.CacheHitCount.Should().BeGreaterOrEqualTo(10, "Subsequent attempt to load the CultureA should cache hit");

            //--
            monitor.Reset();
            LocalizationTree tree1B = await localizationProvider.GetLocalizationTreeAsync(cultureB);

            monitor.CacheMissCount.ShouldBeEquivalentTo(1, "First attempt to load the CultureB should cache miss, key is culture dependant");
            monitor.CacheHitCount.ShouldBeEquivalentTo(0, "First attempt to load the CultureB should not cache hit, key is culture dependant");
        }
Beispiel #5
0
        public void SetUp()
        {
            // Reset static properties
            typeof(Composer.ComposerHost)
            .GetProperty("Current")
            .GetSetMethod(true)
            .Invoke(null, new object[] { null });

            TestPlugin.WasDiscovered = false;

            // Default setup for all required entities
            _composerHost = new Composer.ComposerHost(Assembly.GetExecutingAssembly());

            // Mock AspNetConfigManager
            _aspNetConfigManagerMock = new Mock <IAspNetConfigurationManager>();
            _aspNetConfigManagerMock.Setup(_configureCall);
            _composerHost.SetAspNetConfigurationManager(_aspNetConfigManagerMock.Object);

            // Mock AssemblyHelper
            var assemblyHelper = new Mock <Composer.AssemblyHelper>();

            assemblyHelper.Setup(helper => helper.SafeLoadAssemblies(It.IsAny <string>()))
            .Returns(() => new _Assembly[0]);
            _composerHost.SetAssemblyHelper(assemblyHelper.Object);

            // Mock Composer Environment
            var composerEnvironment = ComposerEnvironmentFactory.Create();

            _composerHost.SetComposerEnvironment(composerEnvironment.Object);

            //Add some additional dependencies expected to be set by a plugin (what?!)
            var lookupService = new Mock <ILookupService>(MockBehavior.Strict);

            _composerHost.Register <ILookupService>(lookupService.Object);
            var currencyProviderMock = new Mock <ICurrencyProvider>(MockBehavior.Strict);

            _composerHost.Register <ICurrencyProvider>(currencyProviderMock.Object);
            _serviceLocatorMoq = new ServiceLocatorMoq();
        }