public async Task ExecuteAsync_should_create_collection_when_Capped_is_set( [Values(false, true)] bool capped) { var maxSize = capped ? (long?)10000 : null; var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { Capped = capped, MaxSize = maxSize }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); if (capped) { stats["capped"].ToBoolean().Should().BeTrue(); } else { stats.Contains("capped").Should().BeFalse(); } } }
private BsonDocument ExecuteOperation(CreateCollectionOperation subject, IWriteBinding binding, bool async) { if (async) { return(subject.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult()); } else { return(subject.Execute(binding, CancellationToken.None)); } }
public async Task ExecuteAsync_should_return_expected_result() { using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var subject = new DropCollectionOperation(_collectionNamespace, _messageEncoderSettings); var createCollectionOperation = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings); await createCollectionOperation.ExecuteAsync(binding, CancellationToken.None); var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); result["ns"].ToString().Should().Be(_collectionNamespace.FullName); } }
public async Task ExecuteAsync_should_create_collection() { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings); using (var binding = CoreTestConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); } }
private void EnsureCollectionExists(IWriteBinding binding, CollectionNamespace collectionNamespace) { try { var operation = new CreateCollectionOperation(collectionNamespace, _messageEncoderSettings); operation.ExecuteAsync(binding, CancellationToken.None).GetAwaiter().GetResult(); } catch (MongoCommandException ex) { if (ex.Message == "Command create failed: collection already exists.") { return; } throw; } }
public async Task ExecuteAsync_should_create_collection_when_UsePowerOf2Sizes_is_set( [Values(false, true)] bool usePowerOf2Sizes) { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { UsePowerOf2Sizes = usePowerOf2Sizes }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); stats["userFlags"].ToInt32().Should().Be(usePowerOf2Sizes ? 1 : 0); } }
public async Task ExecuteAsync_should_create_collection_when_AutoIndexId_is_set( [Values(false, true)] bool autoIndexId) { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { AutoIndexId = autoIndexId }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var listIndexesOperation = new ListIndexesOperation(_collectionNamespace, _messageEncoderSettings); var indexes = await listIndexesOperation.ExecuteAsync(binding, CancellationToken.None); indexes.Count().Should().Be(autoIndexId ? 1 : 0); } }
public async Task ExecuteAsync_should_create_collection_when_AutoIndexId_is_set( [Values(false, true)] bool autoIndexId) { var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { AutoIndexId = autoIndexId }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); stats["systemFlags"].ToInt32().Should().Be(autoIndexId ? 1 : 0); } }
public async Task ExecuteAsync_should_create_collection_when_MaxSize_is_set() { var maxSize = 10000L; var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { Capped = true, MaxSize = maxSize }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); stats["capped"].ToBoolean().Should().BeTrue(); // TODO: not sure how to verify that the maxSize took effect } }
public async Task ExecuteAsync_should_create_collection_when_MaxDocuments_is_set() { var maxDocuments = 123L; var subject = new CreateCollectionOperation(_collectionNamespace, _messageEncoderSettings) { Capped = true, MaxSize = 10000L, MaxDocuments = maxDocuments }; using (var binding = SuiteConfiguration.GetReadWriteBinding()) { var result = await subject.ExecuteAsync(binding, CancellationToken.None); result["ok"].ToBoolean().Should().BeTrue(); var stats = await GetCollectionStatsAsync(binding); stats["ns"].ToString().Should().Be(_collectionNamespace.FullName); stats["capped"].ToBoolean().Should().BeTrue(); stats["max"].ToInt64().Should().Be(maxDocuments); } }