public void UsesSafeContext_WithGivenKey() { object instance = new object(); SafeContextSingleton <object> singleton = new SafeContextSingleton <object> ("test", delegate { return(null); }); singleton.SetCurrent(instance); Assert.That(SafeContext.Instance.GetData("test"), Is.SameAs(instance)); }
public void HasCurrent() { SafeContextSingleton <object> singleton = new SafeContextSingleton <object> ("test", delegate { return(new object()); }); Assert.That(singleton.HasCurrent, Is.False); Dev.Null = singleton.Current; Assert.That(singleton.HasCurrent, Is.True); singleton.SetCurrent(null); Assert.That(singleton.HasCurrent, Is.False); }
public void SetCurrent() { object instance = new object(); SafeContextSingleton <object> singleton = new SafeContextSingleton <object> ("test", delegate { return(new object()); }); Assert.That(singleton.Current, Is.Not.SameAs(instance)); singleton.SetCurrent(instance); Assert.That(singleton.Current, Is.SameAs(instance)); singleton.SetCurrent(new object()); Assert.That(singleton.Current, Is.Not.SameAs(instance)); }
protected RevisionProviderBase() { //RM-5640: Rewrite with tests // Inject an invalidation object where implementations can register for an invalidation of all cached revisions. // While this is a potential memory leak, the revision providers are used with singleton-semantics anyway when instantiated via IoC, // so this shouldn't be an issue. _cachedRevisions = new SafeContextSingleton <SimpleDataStore <TRevisionKey, GuidRevisionValue> > ( SafeContextKeys.SecurityManagerRevision + "_" + Guid.NewGuid().ToString(), () => new SimpleDataStore <TRevisionKey, GuidRevisionValue>()); }
public void DifferentSingletons() { object instance1 = new object(); object instance2 = new object(); SafeContextSingleton <object> singleton1 = new SafeContextSingleton <object> ("test1", delegate { return(instance1); }); SafeContextSingleton <object> singleton2 = new SafeContextSingleton <object> ("test2", delegate { return(instance2); }); Assert.That(singleton1.Current, Is.SameAs(instance1)); Assert.That(singleton2.Current, Is.SameAs(instance2)); Assert.That(singleton1.Current, Is.SameAs(instance1)); Assert.That(singleton2.Current, Is.SameAs(instance2)); }
public void SingleInstance_CreatedOnDemand() { object instance = null; SafeContextSingleton <object> singleton = new SafeContextSingleton <object> ("test", delegate { return(instance = new object()); }); Assert.That(instance, Is.Null); object current = singleton.Current; Assert.That(current, Is.Not.Null); Assert.That(instance, Is.Not.Null); Assert.That(current, Is.SameAs(instance)); Assert.That(singleton.Current, Is.SameAs(current)); Assert.That(singleton.Current, Is.SameAs(current)); Assert.That(singleton.Current, Is.SameAs(current)); }