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); }
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>()); }
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); }
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); }
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>()); }
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); }