public void SetMasterConfiguration() { var mixinConfiguration = new MixinConfiguration(); MixinConfiguration.SetMasterConfiguration(mixinConfiguration); Assert.That(MixinConfiguration.GetMasterConfiguration(), Is.SameAs(mixinConfiguration)); }
public void GetResourceManager_ChangingTheMasterConfigurationOnADifferentThreadIsRecognizedOnOtherThreads_CacheIsNotResetForCurrentFieldValue() { var backup = MixinConfiguration.GetMasterConfiguration(); try { var typeInformation1 = TypeAdapter.Create(typeof(ClassWithoutMultiLingualResourcesAttributes)); var typeInformation2 = TypeAdapter.Create(typeof(InheritedClassWithoutMultiLingualResourcesAttributes)); var resourceManagerCache = (ICache <ITypeInformation, IResourceManager>)PrivateInvoke.GetNonPublicField(_globalizationService, "_resourceManagerCache"); IResourceManager outValue; var newMasterConfiguration = MixinConfiguration.BuildNew().BuildConfiguration(); Dev.Null = _globalizationService.GetResourceManager(typeInformation1); Assert.That(resourceManagerCache.TryGetValue(typeInformation1, out outValue), Is.True); Assert.That(outValue, Is.Not.Null); Assert.That(resourceManagerCache.TryGetValue(typeInformation2, out outValue), Is.False); Assert.That(outValue, Is.Null); var task = Task.Run( () => { MixinConfiguration.SetMasterConfiguration(newMasterConfiguration); MixinConfiguration.SetActiveConfiguration(newMasterConfiguration); // Populate the cache. Dev.Null = _globalizationService.GetResourceManager(typeInformation1); Dev.Null = _globalizationService.GetResourceManager(typeInformation2); Assert.That(resourceManagerCache.TryGetValue(typeInformation1, out outValue), Is.True); Assert.That(outValue, Is.Not.Null); Assert.That(resourceManagerCache.TryGetValue(typeInformation2, out outValue), Is.True); Assert.That(outValue, Is.Not.Null); }); task.Wait(); MixinConfiguration.SetActiveConfiguration(newMasterConfiguration); // Getting a ResourceManager does not reset the cache because this already happened on other thread. Dev.Null = _globalizationService.GetResourceManager(typeInformation1); Assert.That(resourceManagerCache.TryGetValue(typeInformation1, out outValue), Is.True); Assert.That(outValue, Is.Not.Null); Assert.That(resourceManagerCache.TryGetValue(typeInformation2, out outValue), Is.True); Assert.That(outValue, Is.Not.Null); } finally { MixinConfiguration.SetMasterConfiguration(backup); MixinConfiguration.SetActiveConfiguration(backup); } }
public void GetMasterConfiguration_Default() { var oldMasterConfiguration = MixinConfiguration.GetMasterConfiguration(); MixinConfiguration.SetMasterConfiguration(null); var newMasterConfiguration = MixinConfiguration.GetMasterConfiguration(); Assert.That(newMasterConfiguration, Is.Not.Null); Assert.That(newMasterConfiguration, Is.Not.SameAs(oldMasterConfiguration)); Assert.That(newMasterConfiguration.GetContext(typeof(BaseType1)), Is.Not.Null); }
public void MasterConfigurationIsCopiedByNewThreads() { var oldMasterConfiguration = MixinConfiguration.GetMasterConfiguration(); try { var newMasterConfiguration = new MixinConfiguration(); MixinConfiguration.SetMasterConfiguration(newMasterConfiguration); ThreadRunner.Run(() => Assert.That(MixinConfiguration.ActiveConfiguration, Is.SameAs(newMasterConfiguration))); } finally { MixinConfiguration.SetMasterConfiguration(oldMasterConfiguration); } }
public void TearDown() { MixinConfiguration.SetMasterConfiguration(_oldMasterConfiguration); MixinConfiguration.SetActiveConfiguration(_oldActiveConfiguration); }