/// <summary>
        /// Initializes a new instance of the <see cref="ConnectionFactoryBase"/> class.
        /// </summary>
        /// <param name="connectionString">The connection string.</param>
        protected ConnectionFactoryBase(string connectionString){
            if(connectionString == null)
                throw new ArgumentNullException("connectionString");

            ConnectionString = connectionString;
            Builder = new MongoConnectionStringBuilder(connectionString);
        }
        /// <summary>
        /// Saves the events.
        /// </summary>
        /// <param name="aggregateID">The aggregate ID.</param>
        /// <param name="events">The events.</param>
        public void SaveEvents(object aggregateID, IEnumerable <Event> events)
        {
            var connectionStringBuilder = new MongoConnectionStringBuilder(_connectionString);
            var database = MongoServer.Create(connectionStringBuilder).GetDatabase(connectionStringBuilder.DatabaseName);

            database.GetCollection <Event>(_tableName).Insert(events);
        }
        public void TestToStringOutputWithDefaultServerPort()
        {
            var builder = new MongoConnectionStringBuilder();

            builder.AddServer("testserver");
            Assert.AreEqual("Server=testserver", builder.ToString());
        }
        public void TestDefaults()
        {
            string connectionString = "server=localhost";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.IsNull(builder.Username);
            Assert.IsNull(builder.Password);
            Assert.AreEqual(1, builder.Servers.Count());
            Assert.AreEqual("localhost", builder.Servers.Single().Host);
            Assert.AreEqual(27017, builder.Servers.Single().Port);
            Assert.IsNull(builder.DatabaseName);
            Assert.AreEqual(ConnectionMode.Direct, builder.ConnectionMode);
            Assert.AreEqual(MongoDefaults.ConnectTimeout, builder.ConnectTimeout);
            Assert.AreEqual(MongoDefaults.GuidRepresentation, builder.GuidRepresentation);
            Assert.AreEqual(false, builder.IPv6);
            Assert.AreEqual(MongoDefaults.MaxConnectionIdleTime, builder.MaxConnectionIdleTime);
            Assert.AreEqual(MongoDefaults.MaxConnectionLifeTime, builder.MaxConnectionLifeTime);
            Assert.AreEqual(MongoDefaults.MaxConnectionPoolSize, builder.MaxConnectionPoolSize);
            Assert.AreEqual(null, builder.ReplicaSetName);
            Assert.IsNull(builder.SafeMode);
            Assert.AreEqual(false, builder.SlaveOk);
            Assert.AreEqual(MongoDefaults.SocketTimeout, builder.SocketTimeout);
            Assert.AreEqual(MongoDefaults.WaitQueueMultiple, builder.WaitQueueMultiple);
            Assert.AreEqual(MongoDefaults.WaitQueueSize, builder.WaitQueueSize);
            Assert.AreEqual(MongoDefaults.WaitQueueTimeout, builder.WaitQueueTimeout);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public DefaultMongoRepositoryFactory(ConnectionInfo connectionInfo)
        {
            var urlBuilder  = new MongoConnectionStringBuilder(connectionInfo.ConnectionString);
            var mongoClient = new MongoClient(connectionInfo.ConnectionString);

            this.mongoDatabase = mongoClient.GetServer().GetDatabase(urlBuilder.DatabaseName);
        }
        public void TestMaximumPoolSizeIsEnsured()
        {
            var builder = new MongoConnectionStringBuilder { MaximumPoolSize = 2 };
            using(var pool = new PooledConnectionFactory(builder.ToString()))
            {
                var connection1 = pool.Open();
                Assert.IsNotNull(connection1);
                Assert.IsNotNull(pool.Open());

                RawConnection connection3 = null;
                var thread = new Thread(o =>
                {
                    connection3 = pool.Open();
                });
                thread.Start();
                
                Thread.Sleep(300);
                
                Assert.IsNull(connection3);

                pool.Close(connection1);
                
                Thread.Sleep(300);

                Assert.IsNotNull(connection3);

                thread.Abort();
            }
        }
示例#7
0
 private void btConnect_Click(object sender, EventArgs e)
 {
     if (!ServerConnection.Connected)
     {
         try
         {
             var connectionString = new MongoConnectionStringBuilder();
             connectionString.Server       = new MongoServerAddress(tbServerAddress.Text);
             connectionString.Username     = tbUser.Text;
             connectionString.Password     = tbPassword.Text;
             connectionString.DatabaseName = "test";
             //new ServerConnection(tbServerAddress.Text);
             new ServerConnection(connectionString);
             //FillComboboxWithDatabaseNames(ServerConnection.Server);
             SetConnectedState();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             tbServerAddress.Focus();
         }
     }
     else
     {
         //ServerConnection.DatabaseName = cbDatabases.Text;
         ServerConnection.DatabaseName = "test";
         CloseLoginFormOpenMain();
     }
 }
示例#8
0
        public MongoEventStore(string connectionString, ITypeCatalog typeCatalog)
        {
            var connectionStringBuilder = new MongoConnectionStringBuilder(connectionString);

            databaseName  = connectionStringBuilder.Database;
            configuration = BuildMongoConfiguration(typeCatalog, connectionString);
        }
        public void TestUriWithPropertys()
        {
            var builder = new MongoConnectionStringBuilder("mongodb://server1/database?pooled=false&connectionlifetime=10");

            Assert.AreEqual(false, builder.Pooled);
            Assert.AreEqual(10.0, builder.ConnectionLifetime.TotalSeconds);
        }
示例#10
0
        public void TestFromMongoConnectionStringBuilder()
        {
            // set everything to non default values to test that all settings are converted
            var connectionString =
                "server=somehost;username=user1;password=password1;" +
                "connect=direct;connectTimeout=123;uuidRepresentation=pythonLegacy;ipv6=true;" +
                "maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;" +
                "readPreference=secondary;readPreferenceTags=a:1,b:2|c:3,d:4;secondaryAcceptableLatency=128;socketTimeout=129;" +
                "ssl=true;sslVerifyCertificate=false;waitqueuesize=130;waitQueueTimeout=131;" +
                "w=1;fsync=true;journal=true;w=2;wtimeout=131";
            var builder = new MongoConnectionStringBuilder(connectionString);

            var settings = MongoClientSettings.FromConnectionStringBuilder(builder);

            Assert.AreEqual(builder.ConnectionMode, settings.ConnectionMode);
            Assert.AreEqual(builder.ConnectTimeout, settings.ConnectTimeout);
            Assert.AreEqual("{}", settings.CredentialsStore.ToString());
            Assert.AreEqual(new MongoCredentials("user1", "password1"), settings.DefaultCredentials);
            Assert.AreEqual(builder.GuidRepresentation, settings.GuidRepresentation);
            Assert.AreEqual(builder.IPv6, settings.IPv6);
            Assert.AreEqual(builder.MaxConnectionIdleTime, settings.MaxConnectionIdleTime);
            Assert.AreEqual(builder.MaxConnectionLifeTime, settings.MaxConnectionLifeTime);
            Assert.AreEqual(builder.MaxConnectionPoolSize, settings.MaxConnectionPoolSize);
            Assert.AreEqual(builder.MinConnectionPoolSize, settings.MinConnectionPoolSize);
            Assert.AreEqual(builder.ReadPreference, settings.ReadPreference);
            Assert.AreEqual(builder.ReplicaSetName, settings.ReplicaSetName);
            Assert.AreEqual(builder.SecondaryAcceptableLatency, settings.SecondaryAcceptableLatency);
            Assert.IsTrue(builder.Servers.SequenceEqual(settings.Servers));
            Assert.AreEqual(builder.SocketTimeout, settings.SocketTimeout);
            Assert.AreEqual(builder.UseSsl, settings.UseSsl);
            Assert.AreEqual(builder.VerifySslCertificate, settings.VerifySslCertificate);
            Assert.AreEqual(builder.ComputedWaitQueueSize, settings.WaitQueueSize);
            Assert.AreEqual(builder.WaitQueueTimeout, settings.WaitQueueTimeout);
            Assert.AreEqual(builder.GetWriteConcern(true), settings.WriteConcern);
        }
示例#11
0
        /// <summary>
        /// MongoDB 서버에 접속하기 위한 <see cref="MongoConnectionStringBuilder"/>를 빌드 합니다.
        /// </summary>
        /// <param name="serverName">Mongo Server IP 또는 DNS 명</param>
        /// <param name="port">Port</param>
        /// <param name="databaseName">MongoDB의 database 명</param>
        /// <param name="username">사용자명</param>
        /// <param name="password">비밀번호</param>
        /// <returns><see cref="MongoConnectionStringBuilder"/> 인스턴스</returns>
        public static MongoConnectionStringBuilder GetMongoConnectionBuilder(string serverName, int?port, string databaseName,
                                                                             string username, string password)
        {
            serverName.ShouldNotBeWhiteSpace("serverName");

            var builder = new MongoConnectionStringBuilder
            {
                Server = port.HasValue
                                           ? new MongoServerAddress(serverName, port.Value)
                                           : new MongoServerAddress(serverName),
                SafeMode     = SafeMode.True,
                DatabaseName = databaseName ?? DefaultDatabaseName
            };


            if (username.IsNotWhiteSpace())
            {
                builder.Username = username;
            }

            if (password.IsNotWhiteSpace())
            {
                builder.Password = password;
            }

            return(builder);
        }
示例#12
0
        public MongoHelper(string ConnectionString)
        {
            var con    = new MongoConnectionStringBuilder(ConnectionString);
            var server = MongoServer.Create(con);

            this.Database = server.GetDatabase(con.DatabaseName);
        }
        public void TestTwoIPv6AddressesWithDefaultCredentials()
        {
            var connectionString = "mongodb://*****:*****@[::1:],[::2:]/?safe=true";
            var url     = new MongoUrl(connectionString);
            var servers = url.Servers.ToArray();

            Assert.AreEqual(2, servers.Length);
            Assert.AreEqual("[::1:]", servers[0].Host);
            Assert.AreEqual(27017, servers[0].Port);
            Assert.AreEqual("[::2:]", servers[1].Host);
            Assert.AreEqual(27017, servers[1].Port);
            Assert.AreEqual("username", url.DefaultCredentials.Username);
            Assert.AreEqual("password", url.DefaultCredentials.Password);
            Assert.AreEqual(true, url.SafeMode.Enabled);

            connectionString = "servers=[::1:],[::2:];username=username;password=password;safe=true";
            var builder = new MongoConnectionStringBuilder(connectionString);

            servers = builder.Servers.ToArray();
            Assert.AreEqual(2, servers.Length);
            Assert.AreEqual("[::1:]", servers[0].Host);
            Assert.AreEqual(27017, servers[0].Port);
            Assert.AreEqual("[::2:]", servers[1].Host);
            Assert.AreEqual(27017, servers[1].Port);
            Assert.AreEqual("username", url.DefaultCredentials.Username);
            Assert.AreEqual("password", url.DefaultCredentials.Password);
            Assert.AreEqual(true, builder.SafeMode.Enabled);
        }
        public void TestConnectTimeout()
        {
            string connectionString = "server=localhost;connectTimeout=123";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(TimeSpan.FromSeconds(123), builder.ConnectTimeout);
            Assert.AreEqual(connectionString + "s", builder.ToString()); // "s" units added

            connectionString = "server=localhost;connectTimeout=123ms";
            builder          = new MongoConnectionStringBuilder(connectionString);
            Assert.AreEqual(TimeSpan.FromMilliseconds(123), builder.ConnectTimeout);
            Assert.AreEqual(connectionString, builder.ToString());

            connectionString = "server=localhost;connectTimeout=123s";
            builder          = new MongoConnectionStringBuilder(connectionString);
            Assert.AreEqual(TimeSpan.FromSeconds(123), builder.ConnectTimeout);
            Assert.AreEqual(connectionString, builder.ToString());

            connectionString = "server=localhost;connectTimeout=123m";
            builder          = new MongoConnectionStringBuilder(connectionString);
            Assert.AreEqual(TimeSpan.FromMinutes(123), builder.ConnectTimeout);
            Assert.AreEqual(connectionString, builder.ToString());

            connectionString = "server=localhost;connectTimeout=123h";
            builder          = new MongoConnectionStringBuilder(connectionString);
            Assert.AreEqual(TimeSpan.FromHours(123), builder.ConnectTimeout);
            Assert.AreEqual(connectionString, builder.ToString());
        }
示例#15
0
        public MongoHelper()
        {
            var con    = new MongoConnectionStringBuilder(ConfigurationManager.ConnectionStrings["MongoDB"].ConnectionString);
            var server = MongoServer.Create(con);

            this.Database = server.GetDatabase(con.DatabaseName);
        }
 public void TestSimpleUriStringWithDatabase(){
     var builder = new MongoConnectionStringBuilder("mongodb://server/database");
     Assert.AreEqual("database", builder.Database);
     Assert.AreEqual(1, builder.Servers.Length);
     Assert.AreEqual("server", builder.Servers[0].Host);
     Assert.AreEqual(MongoServerEndPoint.DefaultPort, builder.Servers[0].Port);
 }
 public DefaultMongoDbProvider()
 {
     var connectionStringBuilder =
                 new MongoConnectionStringBuilder(ConfigurationManager.AppSettings["MongoConnectionString"]);
     var server = MongoServer.Create(connectionStringBuilder);
     _database = server.GetDatabase(connectionStringBuilder.DatabaseName);
 }
        public void TestMaximumPoolSizeIsEnsured()
        {
            var builder = new MongoConnectionStringBuilder {
                MaximumPoolSize = 2
            };

            using (var pool = new PooledConnectionFactory(builder.ToString()))
            {
                var connection1 = pool.Open();
                Assert.IsNotNull(connection1);
                Assert.IsNotNull(pool.Open());

                RawConnection connection3 = null;
                var           thread      = new Thread(o =>
                {
                    connection3 = pool.Open();
                });
                thread.Start();

                Thread.Sleep(300);

                Assert.IsNull(connection3);

                pool.Close(connection1);

                Thread.Sleep(300);

                Assert.IsNotNull(connection3);

                thread.Abort();
            }
        }
示例#19
0
        private MongoDatabase GetDatabaseFromConnectionString(string connectionString)
        {
            var conString = new MongoConnectionStringBuilder(connectionString);
            MongoClientSettings settings = MongoClientSettings.FromConnectionStringBuilder(conString);
            MongoServer         server   = new MongoClient(settings).GetServer();

            return(server.GetDatabase(conString.DatabaseName));
        }
        public void TestMaxConnectionLifeTime()
        {
            string connectionString = "server=localhost;maxLifeTime=123ms";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(TimeSpan.FromMilliseconds(123), builder.MaxConnectionLifeTime);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestSlaveOkTrue()
        {
            string connectionString = "server=localhost;slaveOk=true";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(true, builder.SlaveOk);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestSafeModeJFalse()
        {
            string connectionString = "server=localhost;safe=true;j=false";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(false, builder.SafeMode.J);
            Assert.AreEqual("server=localhost;safe=true", builder.ToString()); // j=false dropped
        }
        public void TestSafeModeJTrue()
        {
            string connectionString = "server=localhost;safe=true;j=true";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(true, builder.SafeMode.J);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestSafeModeW2()
        {
            string connectionString = "server=localhost;w=2";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(SafeMode.W2, builder.SafeMode);
            Assert.AreEqual("server=localhost;safe=true;w=2", builder.ToString()); // safe=true added
        }
        public void TestSafeModeTrueFSyncTrueW2()
        {
            string connectionString = "server=localhost;safe=true;fsync=true;w=2";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(SafeMode.Create(true, true, 2), builder.SafeMode);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestSafeModeTrueFSyncTrueW2WTimeout()
        {
            string connectionString = "server=localhost;safe=true;fsync=true;w=2;wtimeout=2s";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(SafeMode.Create(true, true, 2, TimeSpan.FromSeconds(2)), builder.SafeMode);
            Assert.AreEqual(connectionString, builder.ToString());
        }
 /// <summary>
 /// Creates the factory.
 /// </summary>
 /// <param name="connectionString">The connection string.</param>
 /// <returns></returns>
 private static IConnectionFactory CreateFactory(string connectionString){
     var builder = new MongoConnectionStringBuilder(connectionString);
     
     if(builder.Pooled)
         return new PooledConnectionFactory(connectionString);
     
     return new SimpleConnectionFactory(connectionString);
 }
        public void TestWaitQueueTimeout()
        {
            string connectionString = "server=localhost;waitQueueTimeout=123ms";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(TimeSpan.FromMilliseconds(123), builder.WaitQueueTimeout);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestMinConnectionPoolSize()
        {
            string connectionString = "server=localhost;minPoolSize=123";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(123, builder.MinConnectionPoolSize);
            Assert.AreEqual(connectionString, builder.ToString());
        }
示例#30
0
        private void AddNewConnection()
        {
            var sb = new MongoConnectionStringBuilder();

            sb.Server = new MongoServerAddress(NewCSServer);

            Connections.Add(NewCSName, sb.ConnectionString);
        }
        public void TestSafeModeFalse()
        {
            string connectionString = "server=localhost;safe=false";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(SafeMode.False, builder.SafeMode);
            Assert.AreEqual(connectionString, builder.ToString());
        }
        public void TestToStringOutputWithoutUsernameAndPassword()
        {
            var builder = new MongoConnectionStringBuilder();

            builder.AddServer("testserver", 555);

            Assert.AreEqual("Server=testserver:555", builder.ToString());
        }
        public void TestIpV6()
        {
            string connectionString = "server=localhost;ipv6=true";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(true, builder.IPv6);
            Assert.AreEqual(connectionString, builder.ToString());
        }
示例#34
0
        public static MongoDatabase GetMongoDatabase()
        {
            var connectionString = ConfigurationManager.ConnectionStrings["Mongo"].ConnectionString;
            var connection       = new MongoConnectionStringBuilder(connectionString);
            var server           = MongoServer.Create(connection);

            return(server.GetDatabase(connection.DatabaseName));
        }
        public void TestGuidRepresentationJavaLegacy()
        {
            string connectionString = "server=localhost;guids=JavaLegacy";
            var    builder          = new MongoConnectionStringBuilder(connectionString);

            Assert.AreEqual(GuidRepresentation.JavaLegacy, builder.GuidRepresentation);
            Assert.AreEqual(connectionString, builder.ToString());
        }
示例#36
0
        public void TestCanCreateFromConnectionString()
        {
            var builder = new MongoConnectionStringBuilder(ConnectionString) {Database = "tests"};
            /*
            using(var database = new MongoDatabase(builder.ToString()))
            {

            }*/
        }
 public void TestExceptionIfMaximumPoolSizeAndConnectionTimeoutAreReached()
 {
     var builder = new MongoConnectionStringBuilder { MaximumPoolSize = 1, ConnectionTimeout = TimeSpan.FromMilliseconds(500)};
     using(var pool = new PooledConnectionFactory(builder.ToString()))
     {
         pool.Open();
         pool.Open();
     }
 }
        /// <summary>
        /// Builds the connection string.
        /// </summary>
        /// <param name="config">The config.</param>
        public void ConnectionString(Action<MongoConnectionStringBuilder> config)
        {
            if (config == null)
                throw new ArgumentNullException("config");

            var builder = new MongoConnectionStringBuilder();
            config(builder);
            _connectionString = builder.ToString();
        }
        public void TestConnectionStringParsingServerWithoutPort(){
            var builder = new MongoConnectionStringBuilder("Username=testuser;Password=testpassword;Server=testserver");
            Assert.AreEqual("testuser", builder.Username);
            Assert.AreEqual("testpassword", builder.Password);

            var servers = new List<MongoServerEndPoint>(builder.Servers);
            Assert.AreEqual(1, servers.Count);
            Assert.AreEqual("testserver", servers[0].Host);
            Assert.AreEqual(MongoServerEndPoint.DefaultPort, servers[0].Port);
        }
 public void TestBorrowOneConnection()
 {
     var builder = new MongoConnectionStringBuilder();
     using(var pool = new PooledConnectionFactory(builder.ToString()))
     {
         var connection = pool.Open();
         Assert.IsNotNull(connection);
         Assert.AreEqual(1, pool.PoolSize);
     }
 }
 // private static methods
 private static MongoClientSettings ParseConnectionString(string connectionString)
 {
     if (connectionString.StartsWith("mongodb://"))
     {
         var url = new MongoUrl(connectionString);
         return MongoClientSettings.FromUrl(url);
     }
     else
     {
         var builder = new MongoConnectionStringBuilder(connectionString);
         return MongoClientSettings.FromConnectionStringBuilder(builder);
     }
 }
        public void TestMinimalPoolSizeIsEnsuredAtRuntime()
        {
            var builder = new MongoConnectionStringBuilder { MinimumPoolSize = 3, ConnectionLifetime = TimeSpan.FromMilliseconds(200)};
            using(var pool = new PooledConnectionFactory(builder.ToString()))
            {
                Assert.AreEqual(3, pool.PoolSize);

                Thread.Sleep(500); // ensure connection lifetime reached

                pool.Cleanup();

                Assert.AreEqual(3, pool.PoolSize);
            }
        }
        public void Setup()
        {
            var containerBuilder = new ContainerBuilder();
            containerBuilder.RegisterType<EventDataLoader>().As<IEventDataLoader>();
            containerBuilder.RegisterType<DefaultPreSaveEventListener>().As<IPreSaveOrUpdateEventListener>();

            _container = containerBuilder.Build();

            var connectionStringBuilder = new MongoConnectionStringBuilder(ConfigurationManager.ConnectionStrings["MongoDBConnectionString"].ConnectionString);
            var mongoServer = MongoServer.Create(connectionStringBuilder);
            _employerCollection = mongoServer.GetDatabase(connectionStringBuilder.DatabaseName).GetCollection<Employer>(typeof (Employer).Name);

            DefaultSerializationProvider.InitializeProvider(typeof(IEntity), new DependencyResolver(_container));
        }
示例#44
0
        public MongoEventStore(string connectionString)
        {
            var connectionStringBuilder = new MongoConnectionStringBuilder(connectionString);
            _databaseName = connectionStringBuilder.DatabaseName;

            _server = MongoServer.Create(connectionString);
            _server.Connect();
            _database = _server.GetDatabase(_databaseName);

            Collection.EnsureIndex(
                new IndexKeysBuilder()
                    .Ascending("AggregateRootId")
                    .Ascending("Sequence")
            );
        }
        public void TestDefaults(){
            var builder = new MongoConnectionStringBuilder();
            Assert.IsNull(builder.Username);
            Assert.IsNull(builder.Password);
            Assert.AreEqual(builder.MaximumPoolSize, MongoConnectionStringBuilder.DefaultMaximumPoolSize);
            Assert.AreEqual(builder.MinimumPoolSize, MongoConnectionStringBuilder.DefaultMinimumPoolSize);
            Assert.AreEqual(builder.ConnectionLifetime, MongoConnectionStringBuilder.DefaultConnectionLifeTime);
            Assert.AreEqual(builder.ConnectionTimeout, MongoConnectionStringBuilder.DefaultConnectionTimeout);
            Assert.AreEqual(builder.Database, MongoConnectionStringBuilder.DefaultDatabase);
            Assert.AreEqual(builder.Pooled, MongoConnectionStringBuilder.DefaultPooled);

            var servers = new List<MongoServerEndPoint>(builder.Servers);
            Assert.AreEqual(1, servers.Count);
            Assert.AreEqual(MongoServerEndPoint.DefaultPort, servers[0].Port);
            Assert.AreEqual(MongoServerEndPoint.DefaultHost, servers[0].Host);
        }
        public void TestConnectionStringParsing(){
            var builder =
                new MongoConnectionStringBuilder(
                    "Username=testuser;Password=testpassword;Server=testserver:555;ConnectionLifetime=50;MaximumPoolSize=101;MinimumPoolSize=202;Pooled=false;Database=testdatabase");
            Assert.AreEqual("testuser", builder.Username);
            Assert.AreEqual("testpassword", builder.Password);
            Assert.AreEqual("testdatabase", builder.Database);
            Assert.AreEqual(101, builder.MaximumPoolSize);
            Assert.AreEqual(202, builder.MinimumPoolSize);
            Assert.AreEqual(TimeSpan.FromSeconds(50), builder.ConnectionLifetime);
            Assert.AreEqual(false, builder.Pooled);

            var servers = new List<MongoServerEndPoint>(builder.Servers);
            Assert.AreEqual(1, servers.Count);
            Assert.AreEqual("testserver", servers[0].Host);
            Assert.AreEqual(555, servers[0].Port);
        }
 public void TestServerCirculationWorks()
 {
     var builder = new MongoConnectionStringBuilder();
     builder.AddServer("localhost", 27017);
     builder.AddServer("localhost", 27018);
     using(var pool = new PooledConnectionFactory(builder.ToString()))
     {
         var connection1 = pool.Open();
         var connection2 = pool.Open();
         var connection3 = pool.Open();
         var connection4 = pool.Open();
         var connection5 = pool.Open();
         Assert.AreEqual(27017, connection1.EndPoint.Port);
         Assert.AreEqual(27018, connection2.EndPoint.Port);
         Assert.AreEqual(27017, connection3.EndPoint.Port);
         Assert.AreEqual(27018, connection4.EndPoint.Port);
         Assert.AreEqual(27017, connection5.EndPoint.Port);
     }
 }
        public void TestCleanup()
        {
            var builder = new MongoConnectionStringBuilder
            {
                MinimumPoolSize = 0,
                ConnectionLifetime = TimeSpan.FromMilliseconds(100)
            };
            using(var pool = new PooledConnectionFactory(builder.ToString()))
            {
                var connection1 = pool.Open();
                var connection2 = pool.Open();
                var connection3 = pool.Open();
                pool.Close(connection1);
                pool.Close(connection2);
                pool.Close(connection3);

                Thread.Sleep(300); // ensure lifetime reached

                pool.Cleanup();

                Assert.AreEqual(0,pool.PoolSize);
            }
        }
示例#49
0
 private Mongo ConnectAndAuthenticatedMongo(string username,string password)
 {
     var builder = new MongoConnectionStringBuilder(_connectionString)
     {
         Username = username,
         Password = password
     };
     var mongo = new Mongo(builder.ToString());
     mongo.Connect();
     return mongo;
 }
 public void TestMinimalPoolSizeIsEnsuredAtStartup()
 {
     var builder = new MongoConnectionStringBuilder {MinimumPoolSize = 3};
     using(var pool = new PooledConnectionFactory(builder.ToString()))
         Assert.AreEqual(3, pool.PoolSize);
 }
 public void TestIfConnectionLifetimeIsReachedItDosenotReturndToPool()
 {
     var builder = new MongoConnectionStringBuilder
     {
         ConnectionLifetime = TimeSpan.FromMilliseconds(100)
     };
     using(var pool = new PooledConnectionFactory(builder.ToString()))
     {
         var connection = pool.Open();
         Thread.Sleep(200); // wait for lifetime reached
         pool.Close(connection);
         Assert.AreEqual(0, pool.PoolSize);
     }
 }
 public void TestCanCreateFromConnectionString(){
     var builder = new MongoConnectionStringBuilder(ConfigurationManager.AppSettings["tests"]) {Database = "tests"};
     /*
     using(var database = new MongoDatabase(builder.ToString()))
     {
         
     }*/
 }
 public void TestToStringOutputWithDefaultServerPort(){
     var builder = new MongoConnectionStringBuilder();
     builder.AddServer("testserver");
     Assert.AreEqual("Server=testserver", builder.ToString());
 }
        public void TestToStringOutputWithoutUsernameAndPassword(){
            var builder = new MongoConnectionStringBuilder();
            builder.AddServer("testserver", 555);

            Assert.AreEqual("Server=testserver:555", builder.ToString());
        }
 public void TestUriStringWithUsenameAndPasswort(){
     var builder = new MongoConnectionStringBuilder("mongodb://*****:*****@server");
     Assert.AreEqual("username", builder.Username);
     Assert.AreEqual("password", builder.Password);
     Assert.AreEqual(MongoConnectionStringBuilder.DefaultDatabase, builder.Database);
     Assert.AreEqual(1, builder.Servers.Length);
     Assert.AreEqual("server", builder.Servers[0].Host);
     Assert.AreEqual(MongoServerEndPoint.DefaultPort, builder.Servers[0].Port);
 }
 public void TestUriWithMultipleServers(){
     var builder = new MongoConnectionStringBuilder("mongodb://server1,server2:1234,server3/database");
     Assert.AreEqual("database", builder.Database);
     Assert.AreEqual(3, builder.Servers.Length);
     Assert.AreEqual("server1", builder.Servers[0].Host);
     Assert.AreEqual(MongoServerEndPoint.DefaultPort, builder.Servers[0].Port);
     Assert.AreEqual("server2", builder.Servers[1].Host);
     Assert.AreEqual(1234, builder.Servers[1].Port);
     Assert.AreEqual("server3", builder.Servers[2].Host);
     Assert.AreEqual(MongoServerEndPoint.DefaultPort, builder.Servers[2].Port);
 }
 public void TestUriWithPropertys(){
     var builder = new MongoConnectionStringBuilder("mongodb://server1/database?pooled=false&connectionlifetime=10");
     Assert.AreEqual(false, builder.Pooled);
     Assert.AreEqual(10.0, builder.ConnectionLifetime.TotalSeconds);
 }
        public void TestToStringOutput(){
            var builder = new MongoConnectionStringBuilder
            {
                Password = "******",
                Username = "******",
                ConnectionLifetime = TimeSpan.FromSeconds(50),
                MaximumPoolSize = 101,
                MinimumPoolSize = 202,
                ConnectionTimeout = TimeSpan.FromSeconds(60)
            };
            builder.AddServer("testserver1", 555);
            builder.AddServer("testserver2");

            Assert.AreEqual(
                "Username=testusername;Password=testpassword;Server=testserver1:555,testserver2;MaximumPoolSize=101;MinimumPoolSize=202;ConnectionTimeout=60;ConnectionLifetime=50",
                builder.ToString());
        }