public void Resolve_AllSingletones_EqualObjects() { // Assign _provider.Register <Foo>(LifetimeType.Singleton); _provider.Register <Bar1>(LifetimeType.Singleton); _provider.Register <Bar2>(LifetimeType.Singleton); // Act var foo = _provider.Resolve <Foo>(); var foo2 = _provider.Resolve <Foo>(); Foo foo3; Foo foo4; using (var scope = _provider.BeginLifetimeScope()) foo3 = scope.Container.Resolve <Foo>(); using (var scope = _provider.BeginLifetimeScope()) foo4 = scope.Container.Resolve <Foo>(); // Assert Assert.AreEqual(foo, foo2); Assert.AreEqual(foo, foo3); Assert.AreEqual(foo, foo4); }
public void BeginLifetimeScope_WithOnBeginLifetimeScopeEventSubscribed_EventFired() { // Arrange var eventFired = false; _provider.OnBeginLifetimeScope += delegate { eventFired = true; }; // Act using var scope = _provider.BeginLifetimeScope(); // Assert Assert.IsTrue(eventFired); }
public void ScopedResolve_NotRegistered_ActivationException() { // Act & Assert using (var scope = _provider.BeginLifetimeScope()) { var ex = Assert.Throws <ActivationException>(() => scope.Resolver.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No registration for type NonDepFoo could be found and an implicit registration could not be made.")); } }
public void ScopedResolve_NotRegistered_ContainerException() { // Act & Assert using (var scope = _provider.BeginLifetimeScope()) { var ex = Assert.Throws <ContainerException>(() => scope.Resolver.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("Unable to resolve")); Assert.That(ex.Message, Does.Contain("NonDepFoo (IsResolutionCall)")); } }
public void ScopedResolve_NotRegistered_ComponentNotFoundException() { // Act & Assert using (var scope = _provider.BeginLifetimeScope()) { var ex = Assert.Throws <ComponentNotFoundException>(() => scope.Resolver.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No component for supporting the service Simplify.DI.TestsTypes.NonDepFoo was found")); } }
public void ScopedResolve_NotRegistered_InvalidOperationException() { // Act & Assert using (var scope = _provider.BeginLifetimeScope()) { var ex = Assert.Throws <InvalidOperationException>(() => scope.Resolver.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No service for type 'Simplify.DI.TestsTypes.NonDepFoo' has been registered.")); } }