Beispiel #1
0
        public FindOneAndDeleteTests(LaunchSettingsFixture launchSettingsFixture)
        {
            _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString"));

            MongoRepository.Configure()
            .Database(DbName, x => x
                      .MapAlongWithSubclassesInSameAssebmly <MyBaseEntity>(CollectionName)
                      )
            .AutoEnlistWithTransactionScopes()
            .Build();

            // Empty all collections in database
            foreach (var collectionName in _mongoClient.GetDatabase(DbName).ListCollectionNames().ToEnumerable())
            {
                _mongoClient.GetDatabase(DbName).GetCollection <BsonDocument>(collectionName).DeleteMany(x => true);
            }

            // Add test documents to db
            var baseEntityDocument    = new MyBaseEntity("Mary");
            var derivedEntityDocument = new MyDerivedEntity("Joe", 45);

            _baseEntityId    = baseEntityDocument.Id;
            _derivedEntityId = derivedEntityDocument.Id;

            _repository = _mongoClient.GetRepository <MyBaseEntity>();
            _repository.InsertAsync(baseEntityDocument).Wait();
            _repository.InsertAsync(derivedEntityDocument).Wait();

            AssertNumberOfDocumentsInCollection(2).Wait();
            AssertNumberOfDocumentsInTrash(0).Wait();
        }
        public static IServiceCollection AddMongoClient(this IServiceCollection services, Action <MongoConnectionSettings> configure)
        {
            var options = new MongoConnectionSettings();

            configure?.Invoke(options);

            services.AddSingleton(options);

            var mongoClientSettings = new MongoClientSettings
            {
                Credential = MongoCredential.CreateCredential(options.Database, options.Username, options.Password),
                Server     = new MongoServerAddress(options.Host, options.Port),
                Scheme     = ConnectionStringScheme.MongoDB
            };

            var mongoClient = new MongoClient(mongoClientSettings);

            services.AddSingleton <IMongoClient>(mongoClient);

            MongoRepository.Configure()
            .Database(options.Database, db => db
                      .MapAlongWithSubclassesInSameAssebmly <OrderId>(options.CollectionName)
                      .MapAlongWithSubclassesInSameAssebmly <OrderArchiveItem>())
            .AutoEnlistWithTransactionScopes()
            .Build();

            services.AddRepositories(mongoClient);

            return(services);
        }
Beispiel #3
0
        public WithTransactionTests(LaunchSettingsFixture launchSettingsFixture)
        {
            MongoRepository.Configure()
            .Database("TestDb", x => x
                      .Map <MyStandaloneEntity>("MyStandaloneEntities")
                      )
            .AutoEnlistWithTransactionScopes()
            .Build();

            this._mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString"));

            _mongoClient.GetDatabase("TestDb").GetCollection <MyStandaloneEntity>("MyStandaloneEntities").DeleteMany(x => true);
        }
Beispiel #4
0
        public UpdateOneBulkTests(LaunchSettingsFixture fixture)
        {
            MongoRepository.Configure()
            .DatabasePerTenant("TestDb", x => x
                               .Map <Item>("Items")
                               )
            .AutoEnlistWithTransactionScopes()
            .Build();

            MongoDb.Bson.NodaTime.NodaTimeSerializers.Register();

            _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString"));

            _mongoClient.GetDatabase("_TestDb").GetCollection <BsonDocument>("Items").DeleteMany(x => true);
        }
Beispiel #5
0
        public UpdateManyTests(LaunchSettingsFixture launchSettingsFixture)
        {
            _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString"));

            MongoRepository.Configure()
            .Database(DbName, x => x
                      .MapAlongWithSubclassesInSameAssebmly <Person>(CollectionName)
                      )
            .AutoEnlistWithTransactionScopes()
            .Build();

            // Empty all collections in database
            foreach (var collectionName in _mongoClient.GetDatabase(DbName).ListCollectionNames().ToEnumerable())
            {
                _mongoClient.GetDatabase(DbName).GetCollection <BsonDocument>(collectionName).DeleteMany(x => true);
            }

            _repository = _mongoClient.GetRepository <Person>();
        }
        public AmbientSessionTests(LaunchSettingsFixture launchSettingsFixture)
        {
            MongoRepository.Configure()
            .DatabasePerTenant("TestDb", x => x
                               .MapAlongWithSubclassesInSameAssebmly <DummyEntity>("DummyEntities")
                               )
            .AutoEnlistWithTransactionScopes()
            .Build();

            this._mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString"));

            _mongoClient.GetRepository <DummyEntity>("tenant_a").DeleteManyAsync(x => true).Wait();
            _mongoClient.GetRepository <DummyEntity>("tenant_b").DeleteManyAsync(x => true).Wait();
            _mongoClient.GetRepository <DummyEntity>().DeleteManyAsync(x => true).Wait();

            _mongoClient.GetRepository <DummyEntity>("tenant_a").PermamentlyDeleteSoftDeletedAsync(x => true).Wait();
            _mongoClient.GetRepository <DummyEntity>("tenant_b").PermamentlyDeleteSoftDeletedAsync(x => true).Wait();
            _mongoClient.GetRepository <DummyEntity>().PermamentlyDeleteSoftDeletedAsync(x => true).Wait();
        }