public void CircularDependency1() { var cache = new SimpleCache(); Func<object> circular = () => cache.Resolve("urn:a", (a) => cache.Resolve("urn:b", (b) => cache.Resolve("urn:c", (c) => cache.Resolve("urn:a", (again) => new object())))); ExceptionAssert.Throws<CircularDependencyException>(() => circular()); }
public void CaseInsenstive() { var cache = new SimpleCache(); var a = cache.Resolve("urn:x-test:foo2", (uri) => new object()); var b = cache.Resolve("urn:x-test:FOO2", (uri) => new object()); var c = cache.Resolve("urn:x-test:Foo2", (uri) => new object()); Assert.AreSame(a, b); Assert.AreSame(a, c); }
public void Invalidating() { const string id = "urn:x-test:invalidating"; var cache = new SimpleCache(); var a = cache.Resolve(id, (uri) => new object()); cache.Invalidate(id); var b = cache.Resolve(id, (uri) => new object()); var c = cache.Resolve(id, (uri) => new object()); Assert.AreNotSame(a, b); Assert.AreSame(b, c); }
public void Resolving() { var cache = new SimpleCache(); Assert.AreEqual("foo", cache.Resolve("urn:x-test:foo", (uri) => "foo")); }
public void SameObject() { var cache = new SimpleCache(); var a = cache.Resolve("urn:x-test:foo1", (uri) => new object()); var b = cache.Resolve("urn:x-test:foo1", (uri) => new object()); var c = cache.Resolve("urn:x-test:foo1", (uri) => new object()); Assert.AreSame(a, b); Assert.AreSame(a, c); }