public void RegisterScopedConcreteTypeCreatesScoped() { var container = new ContainerExtension(); container.RegisterScoped <ServiceMock>(); var resolved1 = container.Resolve <ServiceMock>(); var resolved2 = container.Resolve <ServiceMock>(); Assert.NotNull(resolved1); Assert.Same(resolved1, resolved2); container.CreateScope(); var resolved3 = container.Resolve <ServiceMock>(); Assert.NotSame(resolved1, resolved3); }
public void RegisterScopedWithFactoryAndContainerProvider() { var container = new ContainerExtension(); container.Register <IServiceMock, ServiceMock>(nameof(ServiceMock)); container.RegisterScoped <IServiceMock>(CreateServiceWithContainerProvider); var resolved1 = container.Resolve <IServiceMock>(); Assert.NotNull(resolved1); Assert.IsType <ServiceMock>(resolved1); var resolved2 = container.Resolve <IServiceMock>(); Assert.Same(resolved1, resolved2); container.CreateScope(); var resolved3 = container.Resolve <IServiceMock>(); Assert.NotSame(resolved2, resolved3); }
public void RegisterScopedWithFactory() { var container = new ContainerExtension(); container.RegisterScoped <IServiceMock>(CreateService); var resolved1 = container.Resolve <IServiceMock>(); Assert.NotNull(resolved1); Assert.IsType <ServiceMock>(resolved1); var serviceMock = resolved1 as ServiceMock; Assert.Equal("Created through a factory", serviceMock.SomeProperty); var resolved2 = container.Resolve <IServiceMock>(); Assert.Same(resolved1, resolved2); container.CreateScope(); var resolved3 = container.Resolve <IServiceMock>(); Assert.NotSame(resolved2, resolved3); }