コード例 #1
0
        public void Get_ThrowsAnExceptionWhenStoreCannotBeFound()
        {
            // Arrange
            var services = new ServiceCollection();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(provider);

            // Act and assert
            var exception = Assert.Throws <InvalidOperationException>(() => resolver.Get <OpenIddictScope>());

            Assert.Equal(SR.GetResourceString(SR.ID0230), exception.Message);
        }
コード例 #2
0
        public void Get_ReturnsCustomStoreCorrespondingToTheSpecifiedType()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddSingleton(Mock.Of <IOpenIddictScopeStore <OpenIddictScope> >());

            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(provider);

            // Act and assert
            Assert.NotNull(resolver.Get <OpenIddictScope>());
        }
コード例 #3
0
        public void Get_ReturnsCustomStoreCorrespondingToTheSpecifiedTypeWhenAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddSingleton(Mock.Of <IOpenIddictScopeStore <CustomScope> >());

            var monitor  = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkCoreOptions> >();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(monitor, provider);

            // Act and assert
            Assert.NotNull(resolver.Get <CustomScope>());
        }
        public void Get_ReturnsDefaultStoreCorrespondingToTheSpecifiedTypeWhenAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddSingleton(Mock.Of <IOpenIddictScopeStore <CustomScope> >());
            services.AddSingleton(CreateStore());

            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(new TypeResolutionCache(), provider);

            // Act and assert
            Assert.NotNull(resolver.Get <MyScope>());
        }
        public void Get_ThrowsAnExceptionWhenStoreCannotBeFound()
        {
            // Arrange
            var services = new ServiceCollection();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(provider);

            // Act and assert
            var exception = Assert.Throws <InvalidOperationException>(() => resolver.Get <OpenIddictScope>());

            Assert.Equal(new StringBuilder()
                         .AppendLine("No scope store has been registered in the dependency injection container.")
                         .Append("To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' ")
                         .AppendLine("package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'.")
                         .Append("To register a custom store, create an implementation of 'IOpenIddictScopeStore' and ")
                         .Append("use 'services.AddOpenIddict().AddCore().AddScopeStore()' to add it to the DI container.")
                         .ToString(), exception.Message);
        }
コード例 #6
0
        public void Get_ThrowsAnExceptionForInvalidEntityType()
        {
            // Arrange
            var services = new ServiceCollection();

            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(provider);

            // Act and assert
            var exception = Assert.Throws <InvalidOperationException>(() => resolver.Get <CustomScope>());

            Assert.Equal(new StringBuilder()
                         .AppendLine("The specified scope type is not compatible with the NHibernate stores.")
                         .Append("When enabling the NHibernate stores, make sure you use the built-in ")
                         .Append("'OpenIddictScope' entity (from the 'OpenIddict.NHibernate.Models' package) ")
                         .Append("or a custom entity that inherits from the generic 'OpenIddictScope' entity.")
                         .ToString(), exception.Message);
        }
コード例 #7
0
        public void Get_ReturnsDefaultStoreCorrespondingToTheSpecifiedTypeWhenAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddSingleton(Mock.Of <IOpenIddictScopeStore <CustomScope> >());
            services.AddSingleton(CreateStore());

            var monitor = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkCoreOptions> >(
                mock => mock.CurrentValue == new OpenIddictEntityFrameworkCoreOptions
            {
                DbContextType = typeof(DbContext)
            });

            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(monitor, provider);

            // Act and assert
            Assert.NotNull(resolver.Get <MyScope>());
        }
コード例 #8
0
        public void Get_ThrowsAnExceptionWhenDbContextTypeIsNotAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

            var monitor = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkCoreOptions> >(
                mock => mock.CurrentValue == new OpenIddictEntityFrameworkCoreOptions
            {
                DbContextType = null
            });

            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictScopeStoreResolver(monitor, provider);

            // Act and assert
            var exception = Assert.Throws <InvalidOperationException>(() => resolver.Get <OpenIddictScope>());

            Assert.Equal(new StringBuilder()
                         .AppendLine("No Entity Framework Core context was specified in the OpenIddict options.")
                         .Append("To configure the OpenIddict Entity Framework Core stores to use a specific 'DbContext', ")
                         .Append("use 'options.UseEntityFrameworkCore().UseDbContext<TContext>()'.")
                         .ToString(), exception.Message);
        }