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"); }
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(); }