public MatchOperation(IPipelineStageDefinition pipelineStageDefinition, IBsonSerializer <TDocument> bsonSerializer, ICollection <BsonDocument> documents) { _pipelineStageDefinition = pipelineStageDefinition; _bsonSerializer = bsonSerializer; _documents = documents; }
public UpdateOperationParser(IPipelineStageDefinition pipelineStageDefinition, IBsonSerializer <TDocument> bsonSerializer, ICollection <BsonDocument> documents) { _pipelineStageDefinition = pipelineStageDefinition; _bsonSerializer = bsonSerializer; _documents = documents; _operations = CreateOperationParsers(); }
private ICollection <BsonDocument> ExecuteAggregateOperation( IPipelineStageDefinition pipelineStageDefinition, IBsonSerializer <TDocument> bsonSerializer, ICollection <BsonDocument> documents) { var processor = new UpdateOperationParser <TDocument>(pipelineStageDefinition, bsonSerializer, documents); return(processor.Execute()); }
public void Constructor_should_verify_the_inputs_and_outputs_of_the_stages() { var stages = new IPipelineStageDefinition[] { new BsonDocumentPipelineStageDefinition <Person, BsonDocument>(new BsonDocument()), new BsonDocumentPipelineStageDefinition <BsonDocument, Pet>(new BsonDocument()), new BsonDocumentPipelineStageDefinition <Pet, Person>(new BsonDocument()) }; Action act = () => new PipelineStagePipelineDefinition <Person, Person>(stages); act.ShouldNotThrow <ArgumentException>(); }
public void Constructor_should_verify_the_inputs_and_outputs_of_the_stages_and_throw_when_final_stage_is_invalid() { var stages = new IPipelineStageDefinition[] { new BsonDocumentPipelineStageDefinition <Person, BsonDocument>(new BsonDocument()), new BsonDocumentPipelineStageDefinition <BsonDocument, Pet>(new BsonDocument()), new BsonDocumentPipelineStageDefinition <Pet, BsonDocument>(new BsonDocument()) }; var exception = Record.Exception(() => new PipelineStagePipelineDefinition <Person, Person>(stages)); var e = exception.Should().BeOfType <ArgumentException>().Subject; e.ParamName.Should().Be("stages"); e.Message.Should().Contain($"The output type to the last stage was expected to be {typeof(Person)}, but was {typeof(BsonDocument)}."); }