Exemplo n.º 1
0
        public void ClusterConfigurations_Get_Test()
        {
            var optionsValue = new FastDFSOptions()
            {
                ClusterConfigurations = new List <ClusterConfiguration>()
                {
                    new ClusterConfiguration()
                    {
                        Name    = "cluster1",
                        Charset = "utf-8",
                        TrackerMaxConnection = 1,
                        StorageMaxConnection = 2,
                        Trackers             = new List <Tracker>()
                        {
                            new Tracker("127.0.0.1", 22122)
                        }
                    }
                }
            };

            var options = Options.Create <FastDFSOptions>((FastDFSOptions)optionsValue);
            IClusterSelector clusterSelector = new DefaultClusterSelector(options);

            var configuration = clusterSelector.Get("cluster1");

            Assert.Equal("cluster1", configuration.Name);
            Assert.Equal(1, configuration.TrackerMaxConnection);
            Assert.Equal(2, configuration.StorageMaxConnection);
        }
Exemplo n.º 2
0
        public void ClusterConfigurations_Empty_Test()
        {
            var optionsValue = new FastDFSOptions();

            var options = Options.Create <FastDFSOptions>((FastDFSOptions)optionsValue);
            IClusterSelector clusterSelector = new DefaultClusterSelector(options);

            Assert.Throws <ArgumentNullException>(() =>
            {
                clusterSelector.Get("cluster1");
            });
        }
Exemplo n.º 3
0
        public void ClusterConfigurations_Get_Default_Test()
        {
            var optionValue = new FastDFSOptions()
            {
                ClusterConfigurations = new List <ClusterConfiguration>()
                {
                    new ClusterConfiguration()
                    {
                        Name    = "cluster2",
                        Charset = "utf-8"
                    }
                }
            };

            var options = Options.Create <FastDFSOptions>((FastDFSOptions)optionValue);
            IClusterSelector clusterSelector = new DefaultClusterSelector(options);

            var configuration = clusterSelector.Get("cluster1");

            Assert.Equal("cluster2", configuration.Name);
        }
        public void Get_Default_CreateNew_Test()
        {
            var optionsValue = new FastDFSOptions()
            {
                ClusterConfigurations = new List <ClusterConfiguration>()
                {
                    new ClusterConfiguration()
                    {
                        Name     = "cluster1",
                        Trackers = new List <Tracker>()
                        {
                            new Tracker("127.0.0.1", 22122)
                        }
                    }
                }
            };

            var options = Options.Create <FastDFSOptions>((FastDFSOptions)optionsValue);

            var mockCluster = new Mock <ICluster>();

            mockCluster.Setup(x => x.Name).Returns("cluster1");

            var mockScopeServiceProvider = new Mock <IServiceProvider>();

            mockScopeServiceProvider.Setup(x => x.GetService(typeof(ICluster)))
            .Returns(mockCluster.Object);

            mockScopeServiceProvider.Setup(x => x.GetService(typeof(ClusterConfiguration)))
            .Returns(optionsValue.ClusterConfigurations.FirstOrDefault());

            var mockServiceScope = new Mock <IServiceScope>();

            mockServiceScope.Setup(x => x.ServiceProvider)
            .Returns(mockScopeServiceProvider.Object);

            var mockScopeFactory = new Mock <IServiceScopeFactory>();

            mockScopeFactory.Setup(x => x.CreateScope())
            .Returns(mockServiceScope.Object);

            var mockServiceProvider = new Mock <IServiceProvider>();

            mockServiceProvider.Setup(x => x.GetService(typeof(IServiceScopeFactory)))
            .Returns(mockScopeFactory.Object);

            var mockClusterSelector = new Mock <IClusterSelector>();

            mockClusterSelector.Setup(x => x.Get("cluster1")).Returns(optionsValue.ClusterConfigurations.FirstOrDefault());


            IClusterFactory clusterFactory = new DefaultClusterFactory(_mockLogger.Object, mockServiceProvider.Object, options, mockClusterSelector.Object);

            var cluster = clusterFactory.Get("");

            mockClusterSelector.Verify(x => x.Get("cluster1"), Times.Once);
            mockScopeServiceProvider.Verify(x => x.GetService(typeof(ICluster)), Times.Once);
            mockScopeServiceProvider.Verify(x => x.GetService(typeof(ClusterConfiguration)), Times.Once);

            var cluster2 = clusterFactory.Get("");

            Assert.Equal("cluster1", cluster2.Name);
        }