public void RegisterConventionPack_RegisterEqualConventionPacksTwoTimes_OneConventionPackRegistered() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); mongoDatabaseBuilder.RegisterConventionPack( "duplicateTestConventionPack", new ConventionPack { new DuplicateTestConvention1(), new DuplicateTestConvention2() }, t => true); mongoDatabaseBuilder.RegisterConventionPack( "duplicateTestConventionPack", new ConventionPack { new DuplicateTestConvention2(), new DuplicateTestConvention1() }, t => true); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert IEnumerable <IConvention> conventions = ConventionRegistry .Lookup(typeof(string)).Conventions; int duplicateTestConventionCount1 = conventions .Count(convention => convention.Name == nameof(DuplicateTestConvention1)); int duplicateTestConventionCount2 = conventions .Count(convention => convention.Name == nameof(DuplicateTestConvention2)); Assert.Equal(1, duplicateTestConventionCount1); Assert.Equal(1, duplicateTestConventionCount2); }
public void GetCollection_GetNotExistingCollection_ReturnsNewCollection() { // Arrange IMongoCollection <Foo> mongoCollectionFoo = _mongoDatabase.GetCollection <Foo>(nameof(Foo)); IMongoCollection <Bar> mongoCollectionBar = _mongoDatabase.GetCollection <Bar>(nameof(Bar)); IMongoCollections mongoCollections = new MongoCollections(); mongoCollections.Add(mongoCollectionFoo); MongoDbContextData mongoDbContextData = new MongoDbContextData( _mongoDatabase.Client, _mongoDatabase, mongoCollections); // Act IMongoCollection <Bar> collection = mongoDbContextData.GetCollection <Bar>(); // Assert Assert.NotNull(collection); Assert.NotSame(mongoCollectionBar, collection); Assert.Equal("Bar", collection.CollectionNamespace.CollectionName); }
public void ConfigureCollection_SetDifferentSettingsToCollection_CollectionConfiguredSuccessfully() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); // Act mongoDatabaseBuilder.ConfigureCollection(new FooCollectionConfiguration()); MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert IMongoCollection <Foo> collection = result.GetCollection <Foo>(); IEnumerable <BsonClassMap> classMaps = BsonClassMap.GetRegisteredClassMaps(); Snapshot.Match(new { CollectionName = collection.CollectionNamespace.CollectionName, Settings = collection.Settings, Indexes = collection.Indexes.List().ToList(), ClassMaps = classMaps.Select(map => new { Name = map.Discriminator, IdMemberMap = new { map.IdMemberMap?.ElementName, map.IdMemberMap?.MemberName }, AllMemberMaps = map.AllMemberMaps.Select(amm => new { amm.ElementName, amm.MemberName }), IgnoreExtraElements = map.IgnoreExtraElements }) }); }
public void DisableTableScan_SetMongoServerTableScanToDisabled_MongoServerTableScanIsDisabled() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); // Act mongoDatabaseBuilder.ConfigureDatabase(db => db.Client.DisableTableScan()); MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert Assert.True(result.Client.IsTableScanDisabled()); }
public void AddInstrumentation_Command_ActivityCreated() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); mongoDatabaseBuilder.AddInstrumentation(); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert result.Client.Settings.ClusterConfigurator.Should().NotBeNull(); }
public void ConfigureConnection_NoConnectionSettingsSet_DefaultConnectionSettingsSet() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert Assert.Equal(ReadPreference.Primary, result.Client.Settings.ReadPreference); Assert.Equal(ReadConcern.Majority, result.Client.Settings.ReadConcern); Assert.Equal(WriteConcern.WMajority.With(journal: true), result.Client.Settings.WriteConcern); }
public void Database_GetDatabase_ReturnsRightDatabase() { // Arrange MongoDbContextData mongoDbContextData = new MongoDbContextData( _mongoDatabase.Client, _mongoDatabase, new MongoCollections()); // Act IMongoDatabase database = mongoDbContextData.Database; // Assert Assert.Same(_mongoDatabase, database); }
public void Client_GetClient_ReturnsRightClient() { // Arrange MongoDbContextData mongoDbContextData = new MongoDbContextData( _mongoDatabase.Client, _mongoDatabase, new MongoCollections()); // Act IMongoClient client = mongoDbContextData.Client; // Assert Assert.Same(_mongoDatabase.Client, client); }
public void RegisterConventionPack_ConventionPackNotRegistered_ConventionPacksNotRegistered() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert IEnumerable <IConvention> conventions = ConventionRegistry.Lookup(typeof(string)).Conventions; int enumRepConvention = conventions.Count(convention => convention.Name == "EnumRepresentation"); int camelCaseConvention = conventions.Count(convention => convention.Name == "CamelCaseElementName"); Assert.Equal(0, enumRepConvention); Assert.Equal(0, camelCaseConvention); }
public void RegisterDefaultConventionPack_RegisteredSuccessfully() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); mongoDatabaseBuilder.RegisterDefaultConventionPack(); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert IEnumerable <IConvention> conventions = ConventionRegistry.Lookup(typeof(string)).Conventions; Assert.NotNull(conventions.OfType <EnumRepresentationConvention>().FirstOrDefault(c => c.Representation == BsonType.String)); Assert.NotNull(conventions.OfType <IgnoreExtraElementsConvention>().FirstOrDefault()); Assert.NotNull(conventions.OfType <ImmutableConvention>().FirstOrDefault()); }
public void ConfigureConnection_SetSpecificConnectionSettings_MongoConnectionSettingsSetSuccessfully() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); // Act mongoDatabaseBuilder .ConfigureConnection(settings => settings.ApplicationName = "Test") .ConfigureConnection(settings => settings.ConnectionMode = ConnectionMode.Direct) .ConfigureConnection(settings => settings.WriteConcern = WriteConcern.W3); MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert Assert.Equal("Test", result.Client.Settings.ApplicationName); Assert.Equal(ConnectionMode.Direct, result.Client.Settings.ConnectionMode); Assert.Equal(WriteConcern.W3, result.Client.Settings.WriteConcern); }
public void GetCollection_GetNotExistingCollectionTwice_ReturnsSameCollection() { // Arrange IMongoCollections mongoCollections = new MongoCollections(); MongoDbContextData mongoDbContextData = new MongoDbContextData( _mongoDatabase.Client, _mongoDatabase, mongoCollections); // Act IMongoCollection <Bar> collection1 = mongoDbContextData.GetCollection <Bar>(); IMongoCollection <Bar> collection2 = mongoDbContextData.GetCollection <Bar>(); // Assert Assert.NotNull(collection1); Assert.Same(collection1, collection2); }
public void RegisterConventionPack_RegisterOneSpecificConventionPack_RegisteredSuccessfully() { // Arrange var mongoDatabaseBuilder = new MongoDatabaseBuilder(_mongoOptions); mongoDatabaseBuilder.RegisterConventionPack( "camelCase", new ConventionPack { new EnumRepresentationConvention(BsonType.String), new CamelCaseElementNameConvention() }, t => true); // Act MongoDbContextData result = mongoDatabaseBuilder.Build(); // Assert IEnumerable <IConvention> conventions = ConventionRegistry.Lookup(typeof(string)).Conventions; Assert.NotNull(conventions.OfType <EnumRepresentationConvention>().FirstOrDefault(c => c.Representation == BsonType.String)); Assert.NotNull(conventions.OfType <CamelCaseElementNameConvention>().FirstOrDefault()); }
public void GetCollection_GetBarCollection_ReturnsRightCollection() { // Arrange IMongoCollection <Foo> mongoCollectionFoo = _mongoDatabase.GetCollection <Foo>(nameof(Foo)); IMongoCollection <Bar> mongoCollectionBar = _mongoDatabase.GetCollection <Bar>(nameof(Bar)); IMongoCollections mongoCollections = new MongoCollections(); mongoCollections.Add(mongoCollectionFoo); mongoCollections.Add(mongoCollectionBar); MongoDbContextData mongoDbContextData = new MongoDbContextData( _mongoDatabase.Client, _mongoDatabase, mongoCollections); // Act IMongoCollection <Bar> collection = mongoDbContextData.GetCollection <Bar>(); // Assert Assert.Same(mongoCollectionBar, collection); }
public NullableValueTypeCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public SimpleImmutableWithInterfaceCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public AbstractImmutableWithNullableVirtualBasePropertyCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public AbstractImmutableWithVirtualBasePropertyOverriddenCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public SimpleRecordCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public NullableReferenceTypeCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }
public RecordWithNullableCase(MongoResource mongoResource) { _context = CreateContext(mongoResource); }