Ejemplo n.º 1
0
    public void Create_ResolverIsNull_ExpectArgumentNullException()
    {
        var mockServices   = MockServiceCollection.CreateMock();
        var sourceServices = mockServices.Object;

        var ex = Assert.Throws <ArgumentNullException>(
            () => _ = DependencyRegistrar <RecordType> .Create(sourceServices, null !));

        Assert.Equal("resolver", ex.ParamName);
    }
    public void RegisterScoped_ExpectSourceServices(string regService)
    {
        var mockServices   = MockServiceCollection.CreateMock();
        var sourceServices = mockServices.Object;

        var registrar = DependencyRegistrar <string> .Create(sourceServices, _ => regService);

        var actualServices = registrar.RegisterScoped();

        Assert.Same(sourceServices, actualServices);
    }
    public void RegisterSingleton_ExpectSourceServices(bool isNotNull)
    {
        var mockServices   = MockServiceCollection.CreateMock();
        var sourceServices = mockServices.Object;

        object regService = isNotNull ? new object() : null !;
        var    registrar  = DependencyRegistrar <object> .Create(sourceServices, _ => regService);

        var actualServices = registrar.RegisterSingleton();

        Assert.Same(sourceServices, actualServices);
    }
    public void RegisterTransient_ExpectSourceServices(bool isNotNull)
    {
        var mockServices   = MockServiceCollection.CreateMock();
        var sourceServices = mockServices.Object;

        RecordType regService = isNotNull ? PlusFifteenIdSomeStringNameRecord : null !;
        var        registrar  = DependencyRegistrar.Create(sourceServices, _ => regService);

        var actualServices = registrar.RegisterTransient();

        Assert.Same(sourceServices, actualServices);
    }
    public void RegisterSingleton_ExpectCallAddSingletonOnce(bool isNotNull)
    {
        RecordType regService   = isNotNull ? PlusFifteenIdLowerSomeStringNameRecord : null !;
        var        mockServices = MockServiceCollection.CreateMock(
            sd =>
        {
            Assert.Equal(typeof(RecordType), sd.ServiceType);
            Assert.Equal(ServiceLifetime.Singleton, sd.Lifetime);
            Assert.NotNull(sd.ImplementationFactory);

            var actualService = sd.ImplementationFactory !.Invoke(Mock.Of <IServiceProvider>());
            Assert.Equal(regService, actualService);
        });

        var sourceServices = mockServices.Object;
        var registrar      = DependencyRegistrar <RecordType> .Create(sourceServices, _ => regService);

        _ = registrar.RegisterSingleton();
        mockServices.Verify(s => s.Add(It.IsAny <ServiceDescriptor>()), Times.Once);
    }
    public void RegisterScoped_ExpectCallAddScopedOnce(bool isNotNull)
    {
        RefType regService   = isNotNull ? ZeroIdRefType : null !;
        var     mockServices = MockServiceCollection.CreateMock(
            sd =>
        {
            Assert.Equal(typeof(RefType), sd.ServiceType);
            Assert.Equal(ServiceLifetime.Scoped, sd.Lifetime);
            Assert.NotNull(sd.ImplementationFactory);

            var actualService = sd.ImplementationFactory !.Invoke(Mock.Of <IServiceProvider>());
            Assert.Equal(regService, actualService);
        });

        var sourceServices = mockServices.Object;
        var registrar      = DependencyRegistrar <RefType> .Create(sourceServices, _ => regService);

        _ = registrar.RegisterScoped();
        mockServices.Verify(s => s.Add(It.IsAny <ServiceDescriptor>()), Times.Once);
    }