Ejemplo n.º 1
0
        public void TestConnectTimeout()
        {
            string connectionString = "mongodb://localhost/?connectTimeout=123";
            MongoUrl url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromSeconds(123), url.ConnectTimeout);
            Assert.AreEqual(connectionString + "s", url.ToString()); // "s" units added

            connectionString = "mongodb://localhost/?connectTimeout=123ms";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromMilliseconds(123), url.ConnectTimeout);
            Assert.AreEqual(connectionString, url.ToString());

            connectionString = "mongodb://localhost/?connectTimeout=123s";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromSeconds(123), url.ConnectTimeout);
            Assert.AreEqual(connectionString, url.ToString());

            connectionString = "mongodb://localhost/?connectTimeout=123m";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromMinutes(123), url.ConnectTimeout);
            Assert.AreEqual(connectionString, url.ToString());

            connectionString = "mongodb://localhost/?connectTimeout=123h";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromHours(123), url.ConnectTimeout);
            Assert.AreEqual(connectionString, url.ToString());

            connectionString = "mongodb://localhost/?connectTimeoutMS=123";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(TimeSpan.FromMilliseconds(123), url.ConnectTimeout);
            Assert.AreEqual("mongodb://localhost/?connectTimeout=123ms", url.ToString()); // changed to "ms" suffix
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates an instance of MongoUrl (might be an existing existence if the same URL has been used before).
 /// </summary>
 /// <param name="url">The URL containing the settings.</param>
 /// <returns>An instance of MongoUrl.</returns>
 public static MongoUrl Create(
     string url
     )
 {
     // cache previously seen urls to avoid repeated parsing
     lock (staticLock) {
         MongoUrl mongoUrl;
         if (!cache.TryGetValue(url, out mongoUrl))
         {
             mongoUrl = new MongoUrl(url);
             var canonicalUrl = mongoUrl.ToString();
             if (canonicalUrl != url)
             {
                 if (cache.ContainsKey(canonicalUrl))
                 {
                     mongoUrl = cache[canonicalUrl]; // use existing MongoUrl
                 }
                 else
                 {
                     cache[canonicalUrl] = mongoUrl; // cache under canonicalUrl also
                 }
             }
             cache[url] = mongoUrl;
         }
         return(mongoUrl);
     }
 }
        public void TestDefaults()
        {
            string connectionString = "mongodb://localhost";
            MongoUrl url = new MongoUrl(connectionString);
            Assert.IsNull(url.DefaultCredentials);
            Assert.AreEqual(1, url.Servers.Count());
            Assert.AreEqual("localhost", url.Servers.Single().Host);
            Assert.AreEqual(27017, url.Servers.Single().Port);
            Assert.IsNull(url.DatabaseName);
            Assert.AreEqual(ConnectionMode.Automatic, url.ConnectionMode);
            Assert.AreEqual(MongoDefaults.ConnectTimeout, url.ConnectTimeout);
            Assert.AreEqual(MongoDefaults.GuidRepresentation, url.GuidRepresentation);
            Assert.AreEqual(false, url.IPv6);
            Assert.AreEqual(MongoDefaults.MaxConnectionIdleTime, url.MaxConnectionIdleTime);
            Assert.AreEqual(MongoDefaults.MaxConnectionLifeTime, url.MaxConnectionLifeTime);
            Assert.AreEqual(MongoDefaults.MaxConnectionPoolSize, url.MaxConnectionPoolSize);
            Assert.AreEqual(null, url.ReplicaSetName);
            Assert.AreEqual(null, url.SafeMode);
            Assert.AreEqual(MongoDefaults.SecondaryAcceptableLatency, url.SecondaryAcceptableLatency);
#pragma warning disable 618
            Assert.AreEqual(false, url.SlaveOk);
#pragma warning restore
            Assert.AreEqual(MongoDefaults.SocketTimeout, url.SocketTimeout);
            Assert.AreEqual(false, url.UseSsl);
            Assert.AreEqual(MongoDefaults.WaitQueueMultiple, url.WaitQueueMultiple);
            Assert.AreEqual(MongoDefaults.WaitQueueSize, url.WaitQueueSize);
            Assert.AreEqual(MongoDefaults.WaitQueueTimeout, url.WaitQueueTimeout);
            Assert.AreEqual(connectionString, url.ToString());
        }
Ejemplo n.º 4
0
 public void TestHostWithPort() {
     string connectionString = "mongodb://mongo.xyz.com:12345";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.DefaultCredentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("mongo.xyz.com", url.Servers.Single().Host);
     Assert.AreEqual(12345, url.Servers.Single().Port);
     Assert.AreEqual(ConnectionMode.Direct, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(connectionString, url.ToString());
 }
Ejemplo n.º 5
0
        public void TestConnectionMode()
        {
            string connectionString = "mongodb://localhost/?connect=direct";
            MongoUrl url = new MongoUrl(connectionString);
            Assert.AreEqual(ConnectionMode.Direct, url.ConnectionMode);
            Assert.AreEqual("mongodb://localhost", url.ToString()); // connect=direct dropped

            connectionString = "mongodb://localhost/?connect=replicaSet";
            url = new MongoUrl(connectionString);
            Assert.AreEqual(ConnectionMode.ReplicaSet, url.ConnectionMode);
            Assert.AreEqual(connectionString, url.ToString());
        }
Ejemplo n.º 6
0
 public void TestDirectConnectionMode()
 {
     string connectionString = "mongodb://localhost/?connect=direct";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.Credentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("localhost", url.Server.Host);
     Assert.AreEqual(27017, url.Server.Port);
     Assert.AreEqual(null, url.DatabaseName);
     Assert.AreEqual(ConnectionMode.Direct, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(SafeMode.False, url.SafeMode);
     Assert.AreEqual(false, url.SlaveOk);
     Assert.AreEqual("mongodb://localhost", url.ToString()); // connect=direct dropped
 }
Ejemplo n.º 7
0
 public void TestAll()
 {
     string connectionString = "mongodb://localhost/?connect=replicaSet;replicaSet=name;slaveOk=true;safe=true;fsync=true;w=2;wtimeout=2s";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.DefaultCredentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("localhost", url.Server.Host);
     Assert.AreEqual(27017, url.Server.Port);
     Assert.AreEqual(null, url.DatabaseName);
     Assert.AreEqual(ConnectionMode.ReplicaSet, url.ConnectionMode);
     Assert.AreEqual("name", url.ReplicaSetName);
     Assert.AreEqual(SafeMode.Create(true, true, 2, TimeSpan.FromSeconds(2)), url.SafeMode);
     Assert.AreEqual(true, url.SlaveOk);
     Assert.AreEqual(connectionString, url.ToString());
 }
Ejemplo n.º 8
0
 public void TestHost()
 {
     string connectionString = "mongodb://mongo.xyz.com";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.Credentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("mongo.xyz.com", url.Servers.Single().Host);
     Assert.AreEqual(27017, url.Servers.Single().Port);
     Assert.IsNull(url.DatabaseName);
     Assert.AreEqual(ConnectionMode.Direct, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(SafeMode.False, url.SafeMode);
     Assert.AreEqual(false, url.SlaveOk);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestAll()
 {
     string connectionString = "mongodb://localhost/?connect=replicaSet;replicaSet=name;readPreference=secondary;safe=true;fsync=true;w=2;wtimeout=2s;guids=PythonLegacy";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.DefaultCredentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("localhost", url.Server.Host);
     Assert.AreEqual(27017, url.Server.Port);
     Assert.AreEqual(null, url.DatabaseName);
     Assert.AreEqual(ConnectionMode.ReplicaSet, url.ConnectionMode);
     Assert.AreEqual("name", url.ReplicaSetName);
     Assert.AreEqual(GuidRepresentation.PythonLegacy, url.GuidRepresentation);
     Assert.AreEqual(SafeMode.Create(true, true, 2, TimeSpan.FromSeconds(2)), url.SafeMode);
     Assert.AreEqual(ReadPreference.Secondary, url.ReadPreference);
     Assert.AreEqual(connectionString, url.ToString());
 }
Ejemplo n.º 10
0
 public void TestDefaults() {
     string connectionString = "mongodb://localhost";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.DefaultCredentials);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("localhost", url.Servers.Single().Host);
     Assert.AreEqual(27017, url.Servers.Single().Port);
     Assert.IsNull(url.DatabaseName);
     Assert.AreEqual(ConnectionMode.Direct, url.ConnectionMode);
     Assert.AreEqual(MongoDefaults.ConnectTimeout, url.ConnectTimeout);
     Assert.AreEqual(false, url.IPv6);
     Assert.AreEqual(MongoDefaults.MaxConnectionIdleTime, url.MaxConnectionIdleTime);
     Assert.AreEqual(MongoDefaults.MaxConnectionLifeTime, url.MaxConnectionLifeTime);
     Assert.AreEqual(MongoDefaults.MaxConnectionPoolSize, url.MaxConnectionPoolSize);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(SafeMode.False, url.SafeMode);
     Assert.AreEqual(false, url.SlaveOk);
     Assert.AreEqual(MongoDefaults.SocketTimeout, url.SocketTimeout);
     Assert.AreEqual(MongoDefaults.WaitQueueMultiple, url.WaitQueueMultiple);
     Assert.AreEqual(MongoDefaults.WaitQueueSize, url.WaitQueueSize);
     Assert.AreEqual(MongoDefaults.WaitQueueTimeout, url.WaitQueueTimeout);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestMaxConnectionLifeTime()
 {
     string connectionString = "mongodb://localhost/?maxLifeTime=123ms";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(TimeSpan.FromMilliseconds(123), url.MaxConnectionLifeTime);
     Assert.AreEqual(connectionString, url.ToString());
 }
        public void TestAll()
        {
            string connectionString = "mongodb://localhost/?connect=replicaSet;replicaSet=name;slaveOk=true;safe=true;fsync=true;w=2;wtimeout=2s;secondaryAcceptableLatency=12s;uuidRepresentation=PythonLegacy";
            MongoUrl url = new MongoUrl(connectionString);
            Assert.IsNull(url.DefaultCredentials);
            Assert.AreEqual(1, url.Servers.Count());
            Assert.AreEqual("localhost", url.Server.Host);
            Assert.AreEqual(27017, url.Server.Port);
            Assert.AreEqual(null, url.DatabaseName);
            Assert.AreEqual(ConnectionMode.ReplicaSet, url.ConnectionMode);
            Assert.AreEqual("name", url.ReplicaSetName);
            Assert.AreEqual(GuidRepresentation.PythonLegacy, url.GuidRepresentation);
            Assert.AreEqual(SafeMode.Create(true, true, 2, TimeSpan.FromSeconds(2)), url.SafeMode);
            Assert.AreEqual(TimeSpan.FromSeconds(12), url.SecondaryAcceptableLatency);
#pragma warning disable 618
            Assert.AreEqual(true, url.SlaveOk);
#pragma warning restore
            Assert.AreEqual(connectionString, url.ToString());
        }
 public void TestWaitQueueSize()
 {
     string connectionString = "mongodb://localhost/?waitQueueSize=123";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(0, url.WaitQueueMultiple);
     Assert.AreEqual(123, url.WaitQueueSize);
     Assert.AreEqual(connectionString, url.ToString());
 }
        public void TestSlaveOkTrue()
        {
            string connectionString = "mongodb://localhost/?slaveOk=true";
            MongoUrl url = new MongoUrl(connectionString);
#pragma warning disable 618
            Assert.AreEqual(true, url.SlaveOk);
#pragma warning restore
            Assert.AreEqual(connectionString, url.ToString());
        }
Ejemplo n.º 15
0
 public void TestSlaveOkTrue()
 {
     string connectionString = "mongodb://localhost/?slaveOk=true";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(true, url.SlaveOk);
     Assert.AreEqual(connectionString, url.ToString());
 }
Ejemplo n.º 16
0
 public void TestSlaveOkFalse()
 {
     string connectionString = "mongodb://localhost/?slaveOk=false";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(false, url.SlaveOk);
     Assert.AreEqual("mongodb://localhost", url.ToString()); // slaveOk=false dropped
 }
 public void TestMinConnectionPoolSize()
 {
     string connectionString = "mongodb://localhost/?minPoolSize=123";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(123, url.MinConnectionPoolSize);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestReplicaSetName()
 {
     string connectionString = "mongodb://localhost/?replicaSet=name";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(ConnectionMode.Automatic, url.ConnectionMode);
     Assert.AreEqual("name", url.ReplicaSetName);
     Assert.AreEqual("mongodb://localhost/?replicaSet=name", url.ToString());
 }
 public void TestSafeModeW2()
 {
     string connectionString = "mongodb://localhost/?w=2";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(SafeMode.W2, url.SafeMode);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestSafeModeFSyncFalse()
 {
     string connectionString = "mongodb://localhost/?safe=true;fsync=false";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(SafeMode.True, url.SafeMode);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestSafeModeTrueFSyncTrueW2WTimeout()
 {
     string connectionString = "mongodb://localhost/?safe=true;fsync=true;w=2;wtimeout=2s";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(SafeMode.Create(true, true, 2, TimeSpan.FromSeconds(2)), url.SafeMode);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestSafeModeTrueFSyncTrueW2()
 {
     string connectionString = "mongodb://localhost/?safe=true;fsync=true;w=2";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(SafeMode.Create(true, true, 2), url.SafeMode);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestUsernamePasswordLocalhostDatabase()
 {
     string connectionString = "mongodb://*****:*****@localhost/database";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual("username", url.DefaultCredentials.Username);
     Assert.AreEqual("password", url.DefaultCredentials.Password);
     Assert.AreEqual(1, url.Servers.Count());
     Assert.AreEqual("localhost", url.Servers.Single().Host);
     Assert.AreEqual(27017, url.Servers.Single().Port);
     Assert.AreEqual("database", url.DatabaseName);
     Assert.AreEqual(ConnectionMode.Automatic, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestSecondaryAcceptableLatency()
 {
     string connectionString = "mongodb://localhost/?secondaryAcceptableLatency=12s";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(TimeSpan.FromSeconds(12), url.SecondaryAcceptableLatency);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestUsernamePasswordTwoHostsWithPortsDatabase()
 {
     string connectionString = "mongodb://*****:*****@mongo1.xyz.com:12345,mongo2.xyz.com:23456/database";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual("username", url.DefaultCredentials.Username);
     Assert.AreEqual("password", url.DefaultCredentials.Password);
     Assert.AreEqual(2, url.Servers.Count());
     Assert.AreEqual("mongo1.xyz.com", url.Servers.First().Host);
     Assert.AreEqual(12345, url.Servers.First().Port);
     Assert.AreEqual("mongo2.xyz.com", url.Servers.Skip(1).Single().Host);
     Assert.AreEqual(23456, url.Servers.Skip(1).Single().Port);
     Assert.AreEqual("database", url.DatabaseName);
     Assert.AreEqual(ConnectionMode.Automatic, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestSslDontVerifyCertificate()
 {
     string connectionString = "mongodb://localhost/?ssl=true;sslVerifyCertificate=false";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(true, url.UseSsl);
     Assert.AreEqual(false, url.VerifySslCertificate);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestIpV6()
 {
     string connectionString = "mongodb://localhost/?ipv6=true";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(true, url.IPv6);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestWaitQueueTimeout()
 {
     string connectionString = "mongodb://localhost/?waitQueueTimeout=123ms";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(TimeSpan.FromMilliseconds(123), url.WaitQueueTimeout);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestGuidRepresentationCSharpLegacy()
 {
     string connectionString = "mongodb://localhost/?guids=CSharpLegacy";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(GuidRepresentation.CSharpLegacy, url.GuidRepresentation);
     Assert.AreEqual("mongodb://localhost", url.ToString()); // guids=CSharpLegacy dropped
 }
 public void TestTwoHosts()
 {
     string connectionString = "mongodb://mongo1.xyz.com,mongo2.xyz.com";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.IsNull(url.DefaultCredentials);
     Assert.AreEqual(2, url.Servers.Count());
     Assert.AreEqual("mongo1.xyz.com", url.Servers.First().Host);
     Assert.AreEqual(27017, url.Servers.First().Port);
     Assert.AreEqual("mongo2.xyz.com", url.Servers.Skip(1).Single().Host);
     Assert.AreEqual(27017, url.Servers.Skip(1).Single().Port);
     Assert.AreEqual(ConnectionMode.Automatic, url.ConnectionMode);
     Assert.AreEqual(null, url.ReplicaSetName);
     Assert.AreEqual(connectionString, url.ToString());
 }
 public void TestGuidRepresentationJavaLegacy()
 {
     string connectionString = "mongodb://localhost/?uuidRepresentation=JavaLegacy";
     MongoUrl url = new MongoUrl(connectionString);
     Assert.AreEqual(GuidRepresentation.JavaLegacy, url.GuidRepresentation);
     Assert.AreEqual(connectionString, url.ToString());
 }