private IOptionsSnapshot <BuiltInProviderOptions> SetupOptions(BuiltInProviderOptions options)
        {
            Mock <IOptionsSnapshot <BuiltInProviderOptions> > optionsSnapshot = new Mock <IOptionsSnapshot <BuiltInProviderOptions> >();

            optionsSnapshot.SetupGet(t => t.Value).Returns((BuiltInProviderOptions)options);
            return(optionsSnapshot.Object);
        }
        public void TestFailbackToLocalHost(string username, string computerName)
        {
            IUser     user      = directory.GetUser(username);
            IComputer computer  = directory.GetComputer(computerName);
            string    dnsDomain = this.directory.GetDomainNameDnsFromSid(user.Sid);

            var options = new BuiltInProviderOptions
            {
                AuthorizationServerMapping = new List <AuthorizationServerMapping>
                {
                    new AuthorizationServerMapping
                    {
                        Domain = dnsDomain,
                        DisableLocalFallback = false,
                        Servers = new List <AuthorizationServer>
                        {
                            new AuthorizationServer
                            {
                                Name = "madeup.local",
                                Type = AuthorizationServerType.Default
                            }
                        }
                    }
                }
            };

            var authorizationContextProvider = new AuthorizationContextProvider(this.SetupOptions(options), directory, logger);
            var c = authorizationContextProvider.GetAuthorizationContext(user, computer);

            Assert.AreEqual(c.Server, null);
        }
        public void ExceptionThrownWhenHostListRecycles(string username, string computerName)
        {
            IUser     user      = directory.GetUser(username);
            IComputer computer  = directory.GetComputer(computerName);
            string    dnsDomain = this.directory.GetDomainNameDnsFromSid(user.Sid);

            var options = new BuiltInProviderOptions
            {
                AuthorizationServerMapping = new List <AuthorizationServerMapping>
                {
                    new AuthorizationServerMapping
                    {
                        Domain = dnsDomain,
                        DisableLocalFallback = true,
                        Servers = new List <AuthorizationServer>
                        {
                            new AuthorizationServer
                            {
                                Name = "madeup.local",
                                Type = AuthorizationServerType.Default
                            },
                            new AuthorizationServer
                            {
                                Name = "madeup2.local",
                                Type = AuthorizationServerType.Default
                            },
                            new AuthorizationServer
                            {
                                Name = "madeup3.local",
                                Type = AuthorizationServerType.Default
                            },
                        }
                    }
                }
            };

            var authorizationContextProvider = new AuthorizationContextProvider(this.SetupOptions(options), directory, logger);

            Assert.Throws <AuthorizationContextException>(() => authorizationContextProvider.GetAuthorizationContext(user, computer));
        }