public void CreateView_should_execute_a_CreateViewOperation_with_the_expected_SerializerRegistry( [Values(false, true)] bool isSerializerRegistryNull, [Values(false, true)] bool async) { var mockPipeline = new Mock<PipelineDefinition<BsonDocument, BsonDocument>>(); var documentSerializer = BsonSerializer.SerializerRegistry.GetSerializer<BsonDocument>(); var mockSerializerRegistry = new Mock<IBsonSerializerRegistry>(); mockSerializerRegistry.Setup(r => r.GetSerializer(typeof(BsonDocument))).Returns(BsonDocumentSerializer.Instance); mockSerializerRegistry.Setup(r => r.GetSerializer<BsonDocument>()).Returns(BsonDocumentSerializer.Instance); var serializerRegistry = isSerializerRegistryNull ? null : mockSerializerRegistry.Object; var stages = new[] { new BsonDocument("$match", new BsonDocument("x", 1)) }; var renderedPipeline = new RenderedPipelineDefinition<BsonDocument>(stages, BsonDocumentSerializer.Instance); mockPipeline.Setup(p => p.Render(documentSerializer, serializerRegistry ?? BsonSerializer.SerializerRegistry)).Returns(renderedPipeline); var options = new CreateViewOptions<BsonDocument> { SerializerRegistry = serializerRegistry }; if (async) { _subject.CreateViewAsync<BsonDocument, BsonDocument>("viewName", "viewOn", mockPipeline.Object, options, CancellationToken.None).GetAwaiter().GetResult(); } else { _subject.CreateView<BsonDocument, BsonDocument>("viewName", "viewOn", mockPipeline.Object, options, CancellationToken.None); } var call = _operationExecutor.GetWriteCall<BsonDocument>(); var operation = call.Operation.Should().BeOfType<CreateViewOperation>().Subject; operation.Pipeline.Should().Equal(stages); // test output of call to Render }
public void constructor_should_initialize_instance() { var subject = new CreateViewOptions<BsonDocument>(); subject.Collation.Should().BeNull(); subject.DocumentSerializer.Should().BeNull(); subject.SerializerRegistry.Should().BeNull(); }
public void Collation_get_and_set_should_work( [Values(null, "en_US", "fr_CA")] string locale) { var subject = new CreateViewOptions<BsonDocument>(); var value = locale == null ? null : new Collation(locale); subject.Collation = value; var result = subject.Collation; result.Should().BeSameAs(value); }
public void SerializerRegistry_get_and_set_should_work( [Values(false, true)] bool isValueNull) { var subject = new CreateViewOptions<BsonDocument>(); var value = isValueNull ? null : new BsonSerializerRegistry(); subject.SerializerRegistry = value; var result = subject.SerializerRegistry; result.Should().BeSameAs(value); }
public void DocumentSerializer_get_and_set_should_work( [Values(false, true)] bool isValueNull) { var subject = new CreateViewOptions<BsonDocument>(); var documentSerializer = isValueNull ? null : new BsonDocumentSerializer(); subject.DocumentSerializer = documentSerializer; var result = subject.DocumentSerializer; result.Should().BeSameAs(documentSerializer); }
public virtual void CreateView <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
public void CreateView <TDocument, TResult>(IClientSessionHandle session, string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken)) => _database.CreateView(session, viewName, viewOn, pipeline, options, cancellationToken);
/// <inheritdoc/> public Task CreateViewAsync <TDocument, TResult>(IClientSessionHandle session, string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken)) { throw new System.NotImplementedException(); }
/// <inheritdoc/> public void CreateView <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken)) { throw new System.NotImplementedException(); }
/// <inheritdoc/> public Task CreateViewAsync <TDocument, TResult>(IClientSessionHandle session, string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default) { return(_configuration.Database.CreateViewAsync <TDocument, TResult>(session, viewName, viewOn, pipeline, options, cancellationToken)); }
/// <inheritdoc/> public void CreateView <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default) { _configuration.Database.CreateView <TDocument, TResult>(viewName, viewOn, pipeline, options, cancellationToken); }
public IUnifiedEntityTestOperation Build(string targetDatabaseId, BsonDocument arguments) { var database = _entityMap.GetDatabase(targetDatabaseId); string name = null; string viewOn = null; PipelineDefinition <BsonDocument, BsonDocument> pipeline = null; IClientSessionHandle session = null; TimeSpan? expireAfter = null; TimeSeriesOptions timeSeriesOptions = null; ClusteredIndexOptions <BsonDocument> clusteredIndex = null; foreach (var argument in arguments) { switch (argument.Name) { case "clusteredIndex": var clusteredIndexSpecification = argument.Value.AsBsonDocument; clusteredIndex = new ClusteredIndexOptions <BsonDocument> { Key = clusteredIndexSpecification["key"].AsBsonDocument, Unique = clusteredIndexSpecification["unique"].AsBoolean, Name = clusteredIndexSpecification["name"].AsString }; break; case "collection": name = argument.Value.AsString; break; case "expireAfterSeconds": expireAfter = TimeSpan.FromSeconds(argument.Value.ToInt64()); break; case "pipeline": pipeline = new EmptyPipelineDefinition <BsonDocument>(); foreach (var stage in argument.Value.AsBsonArray) { pipeline = pipeline.AppendStage <BsonDocument, BsonDocument, BsonDocument>(stage.AsBsonDocument); } break; case "session": var sessionId = argument.Value.AsString; session = _entityMap.GetSession(sessionId); break; case "timeseries": var timeseries = argument.Value.AsBsonDocument; var timeField = timeseries["timeField"].AsString; var metaField = timeseries.TryGetValue("metaField", out var metaFieldValue) ? metaFieldValue.AsString : null; TimeSeriesGranularity?granularity = null; if (timeseries.TryGetValue("granularity", out var granularityValue)) { granularity = (TimeSeriesGranularity)Enum.Parse(typeof(TimeSeriesGranularity), granularityValue.AsString, true); } timeSeriesOptions = new TimeSeriesOptions(timeField, metaField, granularity); break; case "viewOn": viewOn = argument.Value.AsString; break; default: throw new FormatException($"Invalid CreateCollectionOperation argument name: '{argument.Name}'."); } } if (viewOn == null && pipeline == null) { var options = new CreateCollectionOptions <BsonDocument> { ExpireAfter = expireAfter, TimeSeriesOptions = timeSeriesOptions, ClusteredIndex = clusteredIndex }; return(new UnifiedCreateCollectionOperation(session, database, name, options)); } if (viewOn != null && expireAfter == null && timeSeriesOptions == null && clusteredIndex == null) { var options = new CreateViewOptions <BsonDocument>(); return(new UnifiedCreateViewOperation(session, database, name, viewOn, pipeline, options)); } var invalidArguments = string.Join(",", arguments.Elements.Select(x => x.Name)); throw new InvalidOperationException($"Invalid combination of CreateCollectionOperation arguments: {invalidArguments}"); }
public Task CreateViewAsync <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default) { throw new NotImplementedException(); }
public Task CreateViewAsync <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken)) { CreateView(viewName, viewOn, pipeline, options, cancellationToken); return(Task.CompletedTask); }
public abstract void CreateView <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken));
public Task CreateViewAsync <TDocument, TResult>(string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = default(CancellationToken)) => _database.CreateViewAsync(viewName, viewOn, pipeline, options, cancellationToken);
public void CreateView_should_execute_a_CreateViewOperation_with_the_expected_Collation( [Values(null, "en_US", "fr_CA")] string locale, [Values(false, true)] bool async) { var pipeline = new BsonDocumentStagePipelineDefinition<BsonDocument, BsonDocument>(new BsonDocument[0]); var collation = locale == null ? null : new Collation(locale); var options = new CreateViewOptions<BsonDocument> { Collation = collation }; if (async) { _subject.CreateViewAsync<BsonDocument, BsonDocument>("viewName", "viewOn", pipeline, options, CancellationToken.None).GetAwaiter().GetResult(); } else { _subject.CreateView<BsonDocument, BsonDocument>("viewName", "viewOn", pipeline, options, CancellationToken.None); } var call = _operationExecutor.GetWriteCall<BsonDocument>(); var operation = call.Operation.Should().BeOfType<CreateViewOperation>().Subject; operation.Collation.Should().BeSameAs(collation); }
public virtual Task CreateViewAsync <TDocument, TResult>(IClientSessionHandle session, string viewName, string viewOn, PipelineDefinition <TDocument, TResult> pipeline, CreateViewOptions <TDocument> options = null, CancellationToken cancellationToken = new CancellationToken()) => throw new NotImplementedException();
/// <summary> /// 确定 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdOK_Click(object sender, EventArgs e) { try { var pipeline = new BsonDocumentStagePipelineDefinition<BsonDocument, BsonDocument>(stages.Values.Select(x => (BsonDocument)x)); CreateViewOptions<BsonDocument> OptionalDoc = null; if (mCollation != null) { OptionalDoc = new CreateViewOptions<BsonDocument>(); OptionalDoc.Collation = mCollation; } RuntimeMongoDbContext.GetCurrentIMongoDataBase().CreateView(txtViewName.Text, cmbViewOn.Text, pipeline, OptionalDoc); } catch (Exception ex) { Utility.ExceptionDeal(ex); } }