public RegisteredConnectedProjection( ConnectedProjectionIdentifier id, ConnectedProjectionState state, ConnectedProjectionInfo info) { Id = id; State = state; Info = info; }
public ConnectedProjection( Func <Owned <IConnectedProjectionContext <TContext> > > contextFactory, TConnectedProjection connectedProjection, IConnectedProjectionSettings settings, ILoggerFactory loggerFactory) { Info = new ConnectedProjectionInfo( typeof(TConnectedProjection).GetProjectionName(), typeof(TConnectedProjection).GetProjectionDescription()); _settings = settings ?? throw new ArgumentNullException(nameof(settings)); ContextFactory = contextFactory ?? throw new ArgumentNullException(nameof(contextFactory)); ConnectedProjectionMessageHandler = new ConnectedProjectionMessageHandler <TContext>( Id, connectedProjection?.Handlers ?? throw new ArgumentNullException(nameof(connectedProjection)), ContextFactory, loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)) ).WithPolicy(_settings.RetryPolicy); }
public FakeProjection( string id, Func <IEnumerable <StreamMessage>, IStreamGapStrategy, ConnectedProjectionIdentifier, CancellationToken, Task> messageHandler, IConnectedProjectionContext <FakeProjectionContext> context) { Id = new ConnectedProjectionIdentifier($"{GetType().FullName}-{id}"); Info = new ConnectedProjectionInfo(string.Empty, string.Empty); var messageHandlerMock = new Mock <IConnectedProjectionMessageHandler>(); messageHandlerMock .SetupGet(handler => handler.Projection) .Returns(Id); messageHandlerMock .Setup(handler => handler.HandleAsync(It.IsAny <IEnumerable <StreamMessage> >(), It.IsAny <IStreamGapStrategy>(), It.IsAny <CancellationToken>())) .Returns((IEnumerable <StreamMessage> messages, IStreamGapStrategy strategy, CancellationToken ct) => messageHandler(messages, strategy, Id, ct)); ConnectedProjectionMessageHandler = messageHandlerMock.Object; ContextFactory = () => new Owned <IConnectedProjectionContext <FakeProjectionContext> >(context, Mock.Of <IDisposable>()); }