public void Constructor()
        {
            Mock <IApplicationManager> applicationManager = new Mock <IApplicationManager>();

            ProviderRegistry <IProvider> test = new ProviderRegistry <IProvider>(applicationManager.Object);

            Assert.IsType <ProviderRegistry <IProvider> >(test);
        }
        public WebRequest Create(Uri uri)
        {
            // this method is called by the .net framework when it wants a specialized
            // web request for a registered non-standard protocol.  KeeCloud has only one
            // specialized WebRequest type, but we pass a provider into the web reqeust.
            var supported = ProviderRegistry.GetProviderForUri(uri);

            return(new ProviderWebRequest(uri, supported.Create(uri), this.host));
        }
        public void UnRegisterNotRegistered()
        {
            Mock <IApplicationManager>   applicationManager = new Mock <IApplicationManager>();
            ProviderRegistry <IProvider> test     = new ProviderRegistry <IProvider>(applicationManager.Object);
            Mock <IProvider>             provider = new Mock <IProvider>();

            Result result = test.UnRegister(provider.Object);

            Assert.Equal(ResultCode.Failure, result.ResultCode);
        }
示例#4
0
        private static DefaultLoadBalancer BuildLoadBalancer() // TODO: include this in library? IOptions / IConfig object?
        {
            var registry         = new ProviderRegistry();
            var strategy         = new RoundRobinStrategy();
            var scheduler        = new Scheduler(interval: 3000); // healthcheck scheduled every 3 seconds
            var heartbeatChecker = new HeartbeatChecker(registry, scheduler);
            var lb = new DefaultLoadBalancer(registry, strategy, heartbeatChecker);

            return(lb);
        }
        public void Discover()
        {
            Mock <IApplicationManager>   applicationManager = new Mock <IApplicationManager>();
            ProviderRegistry <IProvider> test = new ProviderRegistry <IProvider>(applicationManager.Object);

            Assert.Empty(test.Providers);

            test.Discover();

            Assert.Empty(test.Providers);
        }
        public void ProviderRegistry_AddElevenProviders_ThrowsArgumentException() // TODO: Change to ProviderRegistry_AddMoreThanMaxProviders_ThrowsArgumentException when the hardcoded constant becomes configurable
        {
            // Arrange
            var registry  = new ProviderRegistry();
            var providers = Enumerable.Repeat <IProvider>(null, 11).ToList();

            // Act & Assert
            var ex = Assert.Throws <ArgumentException>(() => registry.Register(providers));

            Assert.AreEqual("Can't have more than 10 providers", ex.Message);
        }
        public void ProviderRegistry_AddZeroProviders_ThrowsArgumentException()
        {
            // Arrange
            var registry  = new ProviderRegistry();
            var providers = new List <IProvider>();

            // Act & Assert
            var ex = Assert.Throws <ArgumentException>(() => registry.Register(providers));

            Assert.AreEqual("Can't have 0 providers", ex.Message);
        }
示例#8
0
        public virtual void Setup()
        {
            _options = new MigrationOptions();
            _options.SupportedPlatforms.Set(new[] { DbPlatform }); // avoid validation errors/warnings from other providers

            // initialize IntegrationTestContext
            IProviderRegistry providerRegistry = new ProviderRegistry();
            var          providerLocator       = new ProviderLocator(providerRegistry);
            ProviderInfo providerInfo          = providerLocator.GetExactly(DbPlatform);

            IntegrationTestContext.Initialize(_options, providerInfo);
        }
        public void Register()
        {
            Mock <IApplicationManager>   applicationManager = new Mock <IApplicationManager>();
            ProviderRegistry <IProvider> test     = new ProviderRegistry <IProvider>(applicationManager.Object);
            Mock <IProvider>             provider = new Mock <IProvider>();

            Assert.Empty(test.Providers);

            Result result = test.Register(provider.Object);

            Assert.Equal(ResultCode.Success, result.ResultCode);
            Assert.NotEmpty(test.Providers);
        }
        public void ProviderRegistry_AddMaxNumberOfProviders_ThrowsNoExceptions()
        {
            // Arrange
            var registry  = new ProviderRegistry();
            var providers = new List <IProvider>();

            providers.Add(new Provider("0"));

            // Act
            registry.Register(providers);

            // Assert
            Assert.AreEqual(providers, registry.ActiveProviders);
        }
示例#11
0
        public void RegisterProviderNormalCase()
        {
            var stub = new WebJobsBuilderStub();

            var registry         = new ProviderRegistry();
            var selectedProvider = new List <string>
            {
                nameof(SampleProviderStartup)
            };

            registry.SelectedStartup = selectedProvider;

            registry.Register(stub);
            var provider = stub.Services.BuildServiceProvider();
            var hello    = provider.GetService <IHello>();

            Assert.NotNull(hello);
        }
        public void ProviderRegistry_ExcludeProviderTwice_ThrowsArgumentException()
        {
            // Arrange
            var registry  = new ProviderRegistry();
            var providers = new List <IProvider>();

            var toBeIncluded = new Provider("0");
            var toBeExcluded = new Provider("1");

            providers.Add(toBeIncluded);
            providers.Add(toBeExcluded);

            registry.Register(providers);

            // Act
            registry.Exclude(toBeExcluded);
            var ex = Assert.Throws <ArgumentException>(() => registry.Exclude(toBeExcluded));

            Assert.AreEqual("Provider is not registered so it can't be excluded", ex.Message);
        }
        public void ProviderRegistry_ExcludeProvider_DoesntShowUpInProviders()
        {
            // Arrange
            var registry  = new ProviderRegistry();
            var providers = new List <IProvider>();

            var toBeIncluded = new Provider("0");
            var toBeExcluded = new Provider("1");

            providers.Add(toBeIncluded);
            providers.Add(toBeExcluded);

            registry.Register(providers);

            // Act
            registry.Exclude(toBeExcluded);

            Assert.AreEqual(1, registry.ActiveProviders.Count);
            Assert.AreEqual(toBeIncluded, registry.ActiveProviders.First());
            Assert.AreEqual(toBeExcluded, registry.ExcludedProviders.First());
        }