コード例 #1
0
        protected AbstractMongoSessionFactory(MongoSessionFactoryConfig configuration)
        {
            if (configuration == null)
            {
                throw new MongoBasicException.ConfigurationException("Can not build session factory. The argument 'configuration' is null.");
            }
            if (String.IsNullOrEmpty(configuration.Server))
            {
                throw new MongoBasicException.ConfigurationException("Can not build session factory. The argument 'configuration.server' is null or empty.");
            }
            if (String.IsNullOrEmpty(configuration.Database))
            {
                throw new MongoBasicException.ConfigurationException("Can not build session factory. The argument 'configuration.database' is null or empty.");
            }
            _classMaps           = new List <IMongoClassMap>();
            _mongoClientSettings = new MongoClientSettings {
                Server = new MongoServerAddress(configuration.Server, configuration.Port)
            };
            _configuration = configuration;
            ConfigureAuth(configuration);
            var mongoClient = new MongoClient(_mongoClientSettings);

            _mongoDatabase = mongoClient.GetServer().GetDatabase(_configuration.Database);

            AfterSessionFactoryInitialized(_mongoDatabase);
        }
コード例 #2
0
 static SessionFactoryBuilder()
 {
     var mongoSettings = new MongoSessionFactoryConfig
     {
         Server = ConfigurationManager.AppSettings["server"],
         Port = Convert.ToInt32(ConfigurationManager.AppSettings["port"]),
         Database = ConfigurationManager.AppSettings["database"],
         User = ConfigurationManager.AppSettings["user"],
         Password = ConfigurationManager.AppSettings["password"],
         Collections = new Dictionary<Type, string>
         {
             {typeof(Person), "Persons"},
             {typeof(Vehicle), "Vehicles"}
         }
     };
     IMongoSessionFactory mongoSessionFactory = new TestSessionMongoFactory(mongoSettings);
     MongoSessionFactory = mongoSessionFactory;
 }
コード例 #3
0
        public void With_client_settings_should_establish_connection_to_database()
        {
            //arrange
            var mongoSettings = new MongoSessionFactoryConfig
            {
                Server = ConfigurationManager.AppSettings["server"],
                Port = Convert.ToInt32(ConfigurationManager.AppSettings["port"]),
                Database = ConfigurationManager.AppSettings["database"],
                User = ConfigurationManager.AppSettings["user"],
                Password = ConfigurationManager.AppSettings["password"],
            };
            IMongoSessionFactory mongoSessionFactory = new TestSessionMongoFactory(mongoSettings);

            //act
            IMongoSession mongoSession = mongoSessionFactory.OpenSession();

            //assert
            Assert.True(mongoSession.Status().ErrorMessage == null, "Mongo session should have been open.");
        }
コード例 #4
0
        public void Whith_invalid_credentials_should_throw_mongo_connection_exception()
        {
            //arrange
            string invalidPass = "******";
            var mongoSettings = new MongoSessionFactoryConfig
            {
                Server = ConfigurationManager.AppSettings["server"],
                Port = Convert.ToInt32(ConfigurationManager.AppSettings["port"]),
                Database = ConfigurationManager.AppSettings["database"],
                User = ConfigurationManager.AppSettings["user"],
                Password = invalidPass,
            };
            IMongoSessionFactory mongoSessionFactory = new TestSessionMongoFactory(mongoSettings);

            //act
            IMongoSession mongoSession = mongoSessionFactory.OpenSession();

            //assert
            Assert.Throws<MongoConnectionException>(() => { var status = mongoSession.Status(); });
        }
コード例 #5
0
        public void Whith_connection_config_invalid_should_throw_mongo_connection_exception()
        {
            //arrange
            int invalidPort = 5555;
            var mongoSettings = new MongoSessionFactoryConfig
            {
                Server = ConfigurationManager.AppSettings["server"],
                Port = invalidPort,
                Database = ConfigurationManager.AppSettings["database"],
                User = ConfigurationManager.AppSettings["user"],
                Password = ConfigurationManager.AppSettings["password"],
            };
            IMongoSessionFactory mongoSessionFactory = new TestSessionMongoFactory(mongoSettings);

            //act
            IMongoSession mongoSession = mongoSessionFactory.OpenSession();

            //assert
            Assert.Throws<MongoConnectionException>(() => { var status = mongoSession.Status(); });
        }
コード例 #6
0
        private void ConfigureAuth(MongoSessionFactoryConfig configuration)
        {
            if (configuration.PerformAuth())
            {
                switch (configuration.CredentialType)
                {
                case MongoCredentialType.MONGODB_CR:
                {
                    MongoCredential credentials = MongoCredential.CreateMongoCRCredential(configuration.Database, configuration.User,
                                                                                          configuration.Password);
                    _mongoClientSettings.Credentials = new List <MongoCredential>()
                    {
                        credentials
                    };
                    break;
                }

                case MongoCredentialType.SCRAM_SHA_1:
                {
                    MongoCredential credentials = MongoCredential.CreateScramSha1Credential(configuration.Database, configuration.User,
                                                                                            configuration.Password);
                    _mongoClientSettings.Credentials = new List <MongoCredential>()
                    {
                        credentials
                    };
                    break;
                }

                case MongoCredentialType.PLAIN:
                {
                    MongoCredential credentials = MongoCredential.CreatePlainCredential(configuration.Database, configuration.User,
                                                                                        configuration.Password);
                    _mongoClientSettings.Credentials = new List <MongoCredential>()
                    {
                        credentials
                    };
                    break;
                }
                }
            }
        }
コード例 #7
0
 public TestSessionMongoFactory(MongoSessionFactoryConfig mongoSettings)
     : base(mongoSettings)
 {
 }
コード例 #8
0
        public void With_uri_should_establish_connection_to_database()
        {
            //arrange
            var mongoSettings = new MongoSessionFactoryConfig(ConfigurationManager.AppSettings["mongoUri"]);
            IMongoSessionFactory mongoSessionFactory = new TestSessionMongoFactory(mongoSettings);

            //act
            IMongoSession mongoSession = mongoSessionFactory.OpenSession();

            //assert
            Assert.True(mongoSession.Status().ErrorMessage == null, "Mongo session should have been open.");
        }