public override ChangeFeedProcessorBuilder CreateChangeFeedProcessorBuilder <T>( string workflowName, Func <IReadOnlyCollection <T>, CancellationToken, Task> onChangesDelegate) { if (workflowName == null) { throw new ArgumentNullException(nameof(workflowName)); } if (onChangesDelegate == null) { throw new ArgumentNullException(nameof(onChangesDelegate)); } ChangeFeedObserverFactoryCore <T> observerFactory = new ChangeFeedObserverFactoryCore <T>(onChangesDelegate); ChangeFeedProcessorCore <T> changeFeedProcessor = new ChangeFeedProcessorCore <T>(observerFactory); return(new ChangeFeedProcessorBuilder( workflowName: workflowName, cosmosContainer: this, changeFeedProcessor: changeFeedProcessor, applyBuilderConfiguration: changeFeedProcessor.ApplyBuildConfiguration)); }
public async Task WhenDelegateIsStream_Manual() { ResponseMessage responseMessage = this.BuildResponseMessage(); bool executed = false; Task changesHandler(ChangeFeedProcessorContext context, Stream stream, Func <Task> checkpointAsync, CancellationToken token) { Assert.ReferenceEquals(responseMessage.Content, stream); executed = true; return(Task.CompletedTask); } ChangeFeedObserverFactoryCore changeFeedObserverFactoryCore = new ChangeFeedObserverFactoryCore(changesHandler); ChangeFeedObserver changeFeedObserver = changeFeedObserverFactoryCore.CreateObserver(); Assert.IsNotNull(changeFeedObserver); ChangeFeedObserverContextCore context = new ChangeFeedObserverContextCore(this.leaseToken, responseMessage, Mock.Of <PartitionCheckpointer>()); await changeFeedObserver.ProcessChangesAsync(context, responseMessage.Content, CancellationToken.None); Assert.IsTrue(executed); }