Esempio n. 1
0
        public void Get_ReturnsCustomStoreCorrespondingToTheSpecifiedTypeWhenAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

            services.AddSingleton(Mock.Of <IOpenIddictAuthorizationStore <CustomAuthorization> >());

            var options  = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkOptions> >();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictEntityFrameworkAuthorizationStoreResolver(new TypeResolutionCache(), options, provider);

            // Act and assert
            Assert.NotNull(resolver.Get <CustomAuthorization>());
        }
Esempio n. 2
0
        public void Get_ThrowsAnExceptionForInvalidEntityType()
        {
            // Arrange
            var services = new ServiceCollection();

            var options  = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkOptions> >();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictEntityFrameworkAuthorizationStoreResolver(new TypeResolutionCache(), options, provider);

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

            Assert.Equal(SR.GetResourceString(SR.ID1235), exception.Message);
        }
Esempio n. 3
0
        public void Get_ThrowsAnExceptionForInvalidEntityType()
        {
            // Arrange
            var services = new ServiceCollection();

            var options  = Mock.Of <IOptionsMonitor <OpenIddictEntityFrameworkOptions> >();
            var provider = services.BuildServiceProvider();
            var resolver = new OpenIddictEntityFrameworkAuthorizationStoreResolver(new TypeResolutionCache(), options, provider);

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

            Assert.Equal(new StringBuilder()
                         .AppendLine("The specified authorization type is not compatible with the Entity Framework 6.x stores.")
                         .Append("When enabling the Entity Framework 6.x stores, make sure you use the built-in ")
                         .Append("'OpenIddictEntityFrameworkAuthorization' entity or a custom entity that inherits ")
                         .Append("from the generic 'OpenIddictEntityFrameworkAuthorization' entity.")
                         .ToString(), exception.Message);
        }
Esempio n. 4
0
        public void Get_ThrowsAnExceptionWhenDbContextTypeIsNotAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

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

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

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

            Assert.Equal(SR.GetResourceString(SR.ID1234), exception.Message);
        }
Esempio n. 5
0
        public void Get_ThrowsAnExceptionWhenDbContextTypeIsNotAvailable()
        {
            // Arrange
            var services = new ServiceCollection();

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

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

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

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